c#如何调用 storedprocedure mysqlparameter
* precedure 中用@@rowcount 用来显示上条命令影响的行数
1. procedure 有输入参数,无返回值
procedure :
USE [biyi]
GO
create proc TEST2 (@v1 nvarchar(50),@v2 nvarchar(50))
as
SELECT * FROM PROCE
WHERE @v10 AND @v20
GO
C#中调用
String ConnStr = ConfigurationManager.ConnectionStrings[Connection].ConnectionString;
using (SqlConnection conn = new SqlConnection(ConnStr))
SqlCommand cmd = new SqlCommand;
cmd.Connection = conn;
cmd.CommandText = TEST2;//Procedure Name is TEST2
cmd.CommandType = CommandType.StoredProcedure;
IDataParameter[] parameters = {
new SqlParameter(@v1, c) , //Procedure 的第一个输入参数
new SqlParameter(@v2, SqlDbType.NVarChar,50), //Procedure 的第二个输入参数
parameters[0].Value = 1;
parameters[1].Value = 2;
cmd.Parameters.Add(parameters[0]); //或者 直接 cmd.Parameters.Add( @v1,SqlDbType.NVarChar,50);
cmd.Parameters.Add(parameters[1]);
***.Open;
SqlDataAdapter ad = new SqlDataAdapter(cmd);
DataSet ds = new DataSet;
ad.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
this.GridView1.DataBind;
2. procedure 有输入参数,也有返回值
Procedure:
USE [biyi]
GO
create proc TEST3 (@v1 nvarchar(50),@v2 nvarchar(50))
as
if @v1 @v2
return 1
else return 2
GO
C#中调用:
using (SqlConnection conn = new SqlConnection(ConnStr))
SqlCommand cmd = new SqlCommand;
cmd.Connection = conn;
cmd.CommandText = TEST3;//Procedure Name
cmd.CommandType = CommandType.StoredProcedure;
IDataParameter[] parameters = {
new SqlParameter(@v1, SqlDbType.NVarChar,50) , //Procedure 的第一个输入参数
new SqlParameter(@v2, SqlDbType.NVarChar,50), //Procedure 的第二个输入参数
new SqlParameter(return, SqlDbType.NVarChar,50), //返回值
parameters[0].Value = 1;
parameters[1].Value = 2;
parameters[2].Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(parameters[0]);
cmd.Parameters.Add(parameters[1]);
cmd.Parameters.Add(parameters[2]);
***.Open;
cmd.ExecuteNonQuery;
Label1.Text = parameters[2].Value.ToString;