怎样用一条sql语句调用sqlserver存储过程. sqlstr = 'EXEC sp_attach_db @dbname = N'E:\DataBase\Test_Data.MDF' 因为sql语句写方便,而且种类比较多,写成存储过程,按参数方式调用比较麻烦,而且部署也不方便,所以还是觉得用一条sql语句完成比较好,这些工作在delphi中比较好实现,不知C#中怎么实现.....

解决方案 »

  1.   

    sqlstr = "EXEC sp_attach_db  N'E:\DataBase\Test_Data.MDF'"这样不行吗
      

  2.   

    您可以这样写 SqlConnection MyConn = DB_ex.GetCon();
    SqlCommand MyCmd = new SqlCommand("存储过程名称",MyConn);
    MyCmd.CommandType = CommandType.StoredProcedure;
         
      

  3.   

    SqlCommand command = new SqlCommand();
    SqlConnection con = new SqlConnection("数据库连接");
    command.CommandType = CommandType.Procedure;
    command.CommandText = "存储过程名";
    command.Parameters.Add("name", value);还可以加类等
    command.Connection = con;
    con.Open();
    command.ExecuteNonQuery();
    con.Close();
      

  4.   

    C#中调用存储过程,然后再调用sql存储过程?
    为什么不直接把要操作的语句写在一起呢,还不用调用两个存储过程呢
    呵呵
      

  5.   


     EXEC sp_attach_db @dbname = N'E:\DataBase\Test_Data.MDF'
     上面这句话在sqlserver中正常运行,在C#中就不能运行. 在C#中调入存储过程的方法太麻烦,要是参数多的话,一大堆参数设置.
      

  6.   

    给你一例子
    SqlParameter[] para = new SqlParameter[7];
                SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["data"]);
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter();
                sda.SelectCommand = new SqlCommand("dt_SchOutdateBill", conn);
                sda.SelectCommand.CommandType = CommandType.StoredProcedure;
                para[0] = sda.SelectCommand.Parameters.Add("@billtype", SqlDbType.Int, 8);
                para[0].Value = 0;
     para[1] = sda.SelectCommand.Parameters.Add("@billtype", SqlDbType.Int, 8);
                para[1].Value = 0;