怎样用一条sql语句调用sqlserver存储过程. sqlstr = 'EXEC sp_attach_db @dbname = N'E:\DataBase\Test_Data.MDF' 因为sql语句写方便,而且种类比较多,写成存储过程,按参数方式调用比较麻烦,而且部署也不方便,所以还是觉得用一条sql语句完成比较好,这些工作在delphi中比较好实现,不知C#中怎么实现.....
怎样用一条sql语句调用sqlserver存储过程. sqlstr = 'EXEC sp_attach_db @dbname = N'E:\DataBase\Test_Data.MDF' 因为sql语句写方便,而且种类比较多,写成存储过程,按参数方式调用比较麻烦,而且部署也不方便,所以还是觉得用一条sql语句完成比较好,这些工作在delphi中比较好实现,不知C#中怎么实现.....
SqlCommand MyCmd = new SqlCommand("存储过程名称",MyConn);
MyCmd.CommandType = CommandType.StoredProcedure;
SqlConnection con = new SqlConnection("数据库连接");
command.CommandType = CommandType.Procedure;
command.CommandText = "存储过程名";
command.Parameters.Add("name", value);还可以加类等
command.Connection = con;
con.Open();
command.ExecuteNonQuery();
con.Close();
为什么不直接把要操作的语句写在一起呢,还不用调用两个存储过程呢
呵呵
EXEC sp_attach_db @dbname = N'E:\DataBase\Test_Data.MDF'
上面这句话在sqlserver中正常运行,在C#中就不能运行. 在C#中调入存储过程的方法太麻烦,要是参数多的话,一大堆参数设置.
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;