c#如何调用 storedprocedure mysqlparameter

2022-10-28体育168

* 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;