在.NET中调用存储过程
今天试了一下用存储过程取得数据。归纳方法如下:
1.用SqlCommand和DataSet:
SqlConnection conn=new SqlConnection("server=(local);uid=;password=;database=");
SqlCommand cmd=new SqlCommand("StoreProcedure",connn);
cmd.CommandType=CommandType.StoreProcedure;
SqlDataAdapter dsCommand=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
dsCommand.Fill(ds);
2.
用SqlCommand和SqlDataAdapter
不带参数:
Sqlconnection conn=new SqlConnection("server=(local);uid=;password=;database=");
SqlCommand cmd=new SqlCommand("StoreProcedure",conn);
cmd.CommandType=CommandType.StoreProcedure;
SqlDataReader dr=cmd.ExecuteReader()
while(dr.Read())
{
Response.Write(dr.Item["Field"]);
}
带输入参数:
Sqlconnection conn=new SqlConnection("server=(local);uid=;password=;database=");
SqlCommand cmd=new SqlCommand("StoreProcedure",conn);
cmd.CommandType=CommandType.StoreProcedure;
param=command.Parameters.Add("@inputText",SqlDbType.Int);
param.Value=inputValue;
SqlDataReader dr=cmd.ExecuteReader()
while(dr.Read())
{
}
conn.Close()
带输出参数:
Sqlconnection conn=new SqlConnection("server=(local);uid=;password=;database=");
SqlCommand cmd=new SqlCommand("StoreProcedure",conn);
cmd.CommandType=CommandType.StoreProcedure;
param=command.Parameters.Add("@outText",SqlDbType.Int);
param.Direction=ParameterDirection.Output;
SqlDataReader dr=cmd.ExecuteReader()
while(dr.Read())
{
}
outValue=command.Parameters["@outText"].Value;
conn.Close()
笔记4
string conn=连接数据库字符串
SqlParameter para = new SqlParameter("@name",SqlDbType.Char,10);
para.Direction = ParameterDirection.Input;
para.Value = 名字;
SqlParameter para2 = new SqlParameter("@pwd",SqlDbType.Char,10);
para.Direction = ParameterDirection.Input;
para.Value = 密码;
SqlParameter para = new SqlParameter("@ISValid",SqlDbType.Char,10);
para.Direction = ParameterDirection.ReturnValue;
SqlCommand myCommand=new SqlCommand("CheckPass",conn)
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.Parameters.Add(para);
myCommand.Parameters.Add(para2);
myCommand.ExcuteNonQuery();
bool isvalid=myCommand.Parameters["@ISvalid"].value; //返回值