1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 关于ExecuteNonQuery执行存储过程的返回值 实例讲解存储过程的返回值与传出参数

关于ExecuteNonQuery执行存储过程的返回值 实例讲解存储过程的返回值与传出参数

时间:2024-04-07 20:29:49

相关推荐

关于ExecuteNonQuery执行存储过程的返回值   实例讲解存储过程的返回值与传出参数

关于ExecuteNonQuery执行存储过程的返回值

用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过.

if(cmd.ExecuteNonQuery("xxxx")>0)

{

//执行成功!

}

else

{

//执行失败!

}

通过ExecuteNonQuery()的返回值来判断操作数据库的成功与否是可以的.但是要分情况.

1.ExecuteNonQuery()不执行存储过程.

此时如果对数据库执行,插入,更新,删除操作,返回的是受影响的行数.(及一个大于等于0的整数)

2.ExecuteNonQuery()执行查询不返回影响的行数.

2.ExecuteNonQuery执行存储过程.

[1].存储过程有返回值(传出参数)

(1).把数据库中受影响的行数赋给返回值,这是得到的返回值是受影响的函数(大于或等于0的整数).

(2).把某个值赋给返回值.

[2].存储过程没有返回值

执行成功后返回-1.

(没有返回值的存储过程理应返回受影响的行数(执行增删改)但是.但我们在中执行存储过程的时候,dotnet自动为给了存储过程一个默认值:setnocounton;

所以给我们的感觉是执行存储过程默认返回-1)

============================================================================

1、执行存储过程

SqlConnection conn = new SqlConnection();//建立连接

conn.ConnectionString = Config.ConnStr;//连接字符串

conn.Open();//打开连接

SqlCommand cmd = new SqlCommand();//创建命令

cmd.Connection = conn;//指定连接

mandText = "PRO_AAA";//存储过程名称

mandType = CommandType.StoredProcedure;//指定命令的类型是存储过程

cmd.ExecuteNonQuery();//执行

conn.Close();//关闭连接

2、无返回

同上

3、获得返回结果:

指定一个参数,这个参数的方向(“Direction”)是“ReturnValue”。

MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));

MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;

MyCommand.ExecuteNonQuery();

Response.Write(MyCommand.Parameters["@return"].Value.ToString());

4、获得返回的表:

用SqlDataAdapter 执行Command,然后填充到表。

SqlCommand cmd = new SqlCommand("proc_3", con);//同上

mandType = CommandType.StoredProcedure;//同上

SqlDataAdapter da = new SqlDataAdapter(cmd);//用SqlDataAdapter执行

DataTable table = new DataTable();//创建一张表

da.Fill(table);//填充表

return table;

参考:

【按:我是为了获得“Return返回值”搜索到第2和第3篇文章的,但是他们都没有找到解决办法,用的是OUTPUR输出。只有第一个是真正的解决办法。】

C#获取存储过程的 Return返回值和Output输出参数值

/kf/07/52892.html

调用存储过程并接收存储过程返回值

http://duanxifeng123./blog/static/1154272372112617414/?fromdm&fromSearch&isFromSearchEngine=yes

为什么存储过程总返回-1 取存储过程的值 取数据集

http://liu.wf./blog/static/23788745102335512300/

==========================================================================

=====================================================================

C#获取存储过程的 Return返回值和Output输出参数值-07-11 14:34:36 我来说两句 收藏我要投稿

1.获取Return返回值

程序代码

//存储过程

//Create PROCEDURE MYSQL

// @a int,

// @b int

//AS

// return @a + @b

//GO

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());

conn.Open();

SqlCommand MyCommand = new SqlCommand("MYSQL", conn);

mandType = CommandType.StoredProcedure;

MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));

MyCommand.Parameters["@a"].Value = 10;

MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));

MyCommand.Parameters["@b"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));

MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;

MyCommand.ExecuteNonQuery();

Response.Write(MyCommand.Parameters["@return"].Value.ToString());

2.获取Output输出参数值

程序代码

//存储过程

//Create PROCEDURE MYSQL

// @a int,

// @b int,

// @c int output

//AS

// Set @c = @a + @b

//GO

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());

conn.Open();

SqlCommand MyCommand = new SqlCommand("MYSQL", conn);

mandType = CommandType.StoredProcedure;

MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));

MyCommand.Parameters["@a"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));

MyCommand.Parameters["@b"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));

MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;

MyCommand.ExecuteNonQuery();

Response.Write(MyCommand.Parameters["@c"].Value.ToString());

---------------------------------------------------------------------------------------------------------------

以下代码转自网络:

C#接收存储过程返回值:

public static int User_Add(User us)

{

int iRet;

SqlConnection conn = new SqlConnection(Conn_Str);

SqlCommand cmd = new SqlCommand("User_Add", conn);

mandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@UName", us.UName);

cmd.Parameters.AddWithValue("@UPass", us.UPass);

cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);

cmd.Parameters.AddWithValue("@PassKey", us.PassKey);

cmd.Parameters.AddWithValue("@Email", us.Email);

cmd.Parameters.AddWithValue("@RName", us.RName);

cmd.Parameters.AddWithValue("@Area", us.Area);

cmd.Parameters.AddWithValue("@Address", us.Address);

cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);

cmd.Parameters.AddWithValue("@Phone", us.Phone);

cmd.Parameters.AddWithValue("@QQ", us.QQ);

cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;

try

{

conn.Open();

cmd.ExecuteNonQuery();

iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;

}

catch (SqlException ex)

{

throw ex;

}

finally

{

conn.Close();

}

return iRet;

}

C#接收存储过程输出参数:

public static decimal Cart_UserAmount(int UID)

{

decimal iRet;

SqlConnection conn = new SqlConnection(Conn_Str);

SqlCommand cmd = new SqlCommand("Cart_UserAmount", conn);

mandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@UID", UID);

cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output;

try

{

conn.Open();

cmd.ExecuteNonQuery();

iRet = (decimal)cmd.Parameters["@Amount"].Value;

}

catch (SqlException ex)

{

throw ex;

}

&n

=========================================================

/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题

1、执行存储过程

SqlConnection conn = new SqlConnection();//建立连接

conn.ConnectionString = Config.ConnStr;//连接字符串

conn.Open();//打开连接

SqlCommand cmd = new SqlCommand();//创建命令

cmd.Connection = conn;//指定连接

mandText = "PRO_AAA";//存储过程名称

mandType = CommandType.StoredProcedure;//指定命令的类型是存储过程

cmd.ExecuteNonQuery();//执行

conn.Close();//关闭连接

2、无返回

同上

3、获得返回结果:

指定一个参数,这个参数的方向(“Direction”)是“ReturnValue”。

MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));

MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;

MyCommand.ExecuteNonQuery();

Response.Write(MyCommand.Parameters["@return"].Value.ToString());

4、获得返回的表:

用SqlDataAdapter 执行Command,然后填充到表。

SqlCommand cmd = new SqlCommand("proc_3", con);//同上

mandType = CommandType.StoredProcedure;//同上

SqlDataAdapter da = new SqlDataAdapter(cmd);//用SqlDataAdapter执行

DataTable table = new DataTable();//创建一张表

da.Fill(table);//填充表

return table;

参考:

【按:我是为了获得“Return返回值”搜索到第2和第3篇文章的,但是他们都没有找到解决办法,用的是OUTPUR输出。只有第一个是真正的解决办法。】

C#获取存储过程的 Return返回值和Output输出参数值

/kf/07/52892.html

调用存储过程并接收存储过程返回值

http://duanxifeng123./blog/static/1154272372112617414/?fromdm&fromSearch&isFromSearchEngine=yes

为什么存储过程总返回-1 取存储过程的值 取数据集

http://liu.wf./blog/static/23788745102335512300/

流浪是注定的宿命;

漂泊是无尽的轮回。 分类:c#/,数据库

关于ExecuteNonQuery执行存储过程的返回值 实例讲解存储过程的返回值与传出参数 C#获取存储过程的 Return返回值和Output输出参数值...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。