C# - ADO.Net 调用存储过程

时间:2023-03-10 03:10:04
C# - ADO.Net 调用存储过程

------------------------存储过程调用,创建DataSet:----------------------
//数据库连接字符串
string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库文件名称.mdf;Integrated Security=True;";
//建立连接
SqlConnection conn=new SqlConnection(connStr);
//创建SqlDataAdapter类
SqlDataAdapter myCommand = new SqlDataAdapter();
//建立查询命令
myCommand.SelectCommand = new SqlCommand("存储过程名", conn);
   
//表示 myCommand 执行的是存储过程
myCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
  
//设置存储过程的参数值,其中@id 为存储过程的参数.
SqlParameter id = myCommand.Parameters.Add("@id", SqlDbType.NText);
id.Value = 存储过程参数值;
   
DataSet myds = new DataSet();
myCommand.Fill(myds, "tableName");

----------------------存储过程调用,创建DataRead:-----------------------
//数据库连接字符串
string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库文件名称.mdf;Integrated Security=True;";
//建立连接
SqlConnection conn = new SqlConnection(connStr);
//建立查询命令
SqlCommand myCommand = new SqlCommand("存储过程名", conn);   
         
//表示 myCommand 执行的是存储过程
myCommand.CommandType = CommandType.StoredProcedure;
   
//设置存储过程的参数值,其中@id 为存储过程的参数.
SqlParameter id = myCommand.Parameters.Add("@id", SqlDbType.NText);
id.Value=存储过程参数值;
    
//设置存储过程的参数值,其中@out 为存储过程的输出参数
SqlParameter output = myCommand.Parameters.Add("@out", SqlDbType.Int);
//声明该参数值的类型为输出参数
output.Direction = ParameterDirection.Output;
   
//执行命令
SqlDataReader reader = myCommand.ExecuteReader();//读取数据
//或者
SqlDataReader reader = myCommand.ExecuteNonQuery();//数据更新
//打印出输出参数的值
Console.WriteLine(output.Value.ToString());