如何取得sql过程的return值 为SqlCommand加一个参数其Direction = ParameterDirection.ReturnValue 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int rtn = (int)SqlCommand1.ExecuteScalar(); 赞同! uno(钢盅郭子) ( 给你个例子: SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString); SqlCommand cmdAdd = new SqlCommand( "Community_DiscussAddPost", conPortal); cmdAdd.CommandType = CommandType.StoredProcedure; cmdAdd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; cmdAdd.Parameters.Add("@communityID", CommunityGlobals.CommunityID); cmdAdd.Parameters.Add("@sectionID", sectionID); cmdAdd.Parameters.Add("@username", username); cmdAdd.Parameters.Add("@topicID", topicID); cmdAdd.Parameters.Add("@title", title); cmdAdd.Parameters.Add("@briefDescription", briefDescription); cmdAdd.Parameters.Add("@metaDescription", ContentPageUtility.CalculateMetaDescription(briefDescription)); cmdAdd.Parameters.Add("@metaKeys", ContentPageUtility.CalculateMetaKeys(briefDescription)); cmdAdd.Parameters.Add("@moderationStatus", moderationStatus ); cmdAdd.Parameters.Add("@isPinned", isPinned); cmdAdd.Parameters.Add("@isAnnouncement", isAnnouncement); cmdAdd.Parameters.Add("@isLocked", isLocked); cmdAdd.Parameters.Add("@bodyText", SqlDbType.NText); cmdAdd.Parameters[ "@bodyText" ].Value = bodyText; conPortal.Open(); cmdAdd.ExecuteNonQuery(); //取得返回值 int result = (int)cmdAdd.Parameters["@RETURN_VALUE"].Value; uno(钢盅郭子) :能给个小例子吗?谢谢:) 给个例子:使用 Command 对象的 ExecuteNonQuery 方法此示例使用 ExecuteNonQuery 方法运行查询并返回参数值。ExecuteNonQuery 还返回在运行此查询后受影响的记录数。但是,ExecuteNonQuery 不从该存储过程返回任何行或列。如果只需要知道更改的行数,那么在使用 INSERT、UPDATE 或 DELETE 语句时,ExecuteNonQuery 方法就特别有用。在存储过程中仅使用 SELECT 语句时,您将收到 -1,因为查询不会影响任何行。在运行 SQL Server 的服务器上创建下面的存储过程: Create Procedure TestProcedure3 ( @au_idIN varchar (11), @au_fnam varchar (30) )As/* set nocount on */ Update authors set au_fname = @au_fnamwhere au_id = @au_idin return (5)对 System 和 System.Data 名称空间使用 Imports 语句,这样,在后面的代码中就不需要在这些名称空间中限定声明了。必须在任何其他声明之前使用 Imports 语句。请确保只复制您所选的提供程序的代码。 SQL 客户机 Imports System.Data.SqlClientOLE DB 数据提供程序 Imports System.Data.OleDb将下面的代码添加到 Form_Load 事件中: SQL 客户机 Dim PubsConn As SqlConnection = New SqlConnection & _("Data Source=server;integrated security=sspi;" & _"initial Catalog=pubs;")Dim testCMD As SqlCommand = New SqlCommand & _("TestProcedure3", PubsConn)testCMD.CommandType = CommandType.StoredProcedureDim RetValue As SqlParameter = testCMD.Parameters.Add & _("RetValue", SqlDbType.Int)RetValue.Direction = ParameterDirection.ReturnValueDim auIDIN As SqlParameter = testCMD.Parameters.Add & _("@au_idIN", SqlDbType.VarChar, 11)auIDIN.Direction = ParameterDirection.InputDim auFname As SqlParameter = testCMD.Parameters.Add & _("@au_fnam", SqlDbType.VarChar, 30)auFname.Direction = ParameterDirection.InputauIDIN.Value = "213-46-8915"auFname.Value = "Marjorie"PubsConn.Open()Dim rvRows As Integer = testCMD.ExecuteNonQueryConsole.WriteLine(rvRows)Console.WriteLine(RetValue.Value)OLE DB 数据提供程序 Dim PubsConn As OleDbConnection = New OleDbConnection & _("Provider=SQLOLEDB;Data Source=server;" & _"integrated Security=sspi;initial catalog=pubs;")Dim testCMD As OleDbCommand = New OleDbCommand & _("TestProcedure3", PubsConn)testCMD.CommandType = CommandType.StoredProcedureDim RetVal As OleDbParameter = testCMD.Parameters.Add & _("RetVal", OleDbType.Integer)RetVal.Direction = ParameterDirection.ReturnValueDim IdIn As OleDbParameter = testCMD.Parameters.Add & _("@au_idIN", OleDbType.VarChar, 11)IdIn.Direction = ParameterDirection.InputDim FnameIn As OleDbParameter = testCMD.Parameters.Add & _("@au_fname", OleDbType.VarChar, 30)FnameIn.Direction = ParameterDirection.InputIdIn.Value = "213-46-8915"FnameIn.Value = "Marjorie"PubsConn.Open()Dim intRowAffected As Integer = testCMD.ExecuteNonQueryConsole.WriteLine("Number of Rows affected:" & intRowAffected)Console.WriteLine(RetVal.Value)修改 Connection 对象的连接字符串,以便指向运行 SQL Server 的服务器。运行此代码。"输出"窗口显示受影响的行数 (intRowAffect) 和返回参数的值。 sqlserver 2005 错误,在线求解! 仿百度关键字高亮显示 再来麻烦有商业项目经验的各位大侠。刚接一个项目,不知道该开价多少。 web控件checkbox CheckedChanged 事件问题 动态创建的模板列,消失了 初学者关于导入命名空间的疑问 问一下那个网页中可以编辑文字的叫什么! sqlserver 分类显示 如何返回这样的数据? JS 实现分类效果 求大神 编辑列为多行文本框时怎么绑定数据控件? COM+事务处理,Web Service,错误,高手请支持。
! uno(钢盅郭子) (
SqlCommand cmdAdd = new SqlCommand( "Community_DiscussAddPost", conPortal);
cmdAdd.CommandType = CommandType.StoredProcedure;
cmdAdd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
cmdAdd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
cmdAdd.Parameters.Add("@sectionID", sectionID);
cmdAdd.Parameters.Add("@username", username);
cmdAdd.Parameters.Add("@topicID", topicID);
cmdAdd.Parameters.Add("@title", title);
cmdAdd.Parameters.Add("@briefDescription", briefDescription);
cmdAdd.Parameters.Add("@metaDescription", ContentPageUtility.CalculateMetaDescription(briefDescription));
cmdAdd.Parameters.Add("@metaKeys", ContentPageUtility.CalculateMetaKeys(briefDescription));
cmdAdd.Parameters.Add("@moderationStatus", moderationStatus );
cmdAdd.Parameters.Add("@isPinned", isPinned);
cmdAdd.Parameters.Add("@isAnnouncement", isAnnouncement);
cmdAdd.Parameters.Add("@isLocked", isLocked);
cmdAdd.Parameters.Add("@bodyText", SqlDbType.NText);
cmdAdd.Parameters[ "@bodyText" ].Value = bodyText;
conPortal.Open();
cmdAdd.ExecuteNonQuery(); //取得返回值
int result = (int)cmdAdd.Parameters["@RETURN_VALUE"].Value;
能给个小例子吗?谢谢:)
此示例使用 ExecuteNonQuery 方法运行查询并返回参数值。ExecuteNonQuery 还返回在运行此查询后受影响的记录数。但是,ExecuteNonQuery 不从该存储过程返回任何行或列。如果只需要知道更改的行数,那么在使用 INSERT、UPDATE 或 DELETE 语句时,ExecuteNonQuery 方法就特别有用。在存储过程中仅使用 SELECT 语句时,您将收到 -1,因为查询不会影响任何行。
在运行 SQL Server 的服务器上创建下面的存储过程: Create Procedure TestProcedure3
(
@au_idIN varchar (11),
@au_fnam varchar (30)
)As
/* set nocount on */
Update authors set au_fname = @au_fnam
where au_id = @au_idin
return (5)
对 System 和 System.Data 名称空间使用 Imports 语句,这样,在后面的代码中就不需要在这些名称空间中限定声明了。必须在任何其他声明之前使用 Imports 语句。请确保只复制您所选的提供程序的代码。 SQL 客户机 Imports System.Data.SqlClient
OLE DB 数据提供程序 Imports System.Data.OleDb
将下面的代码添加到 Form_Load 事件中: SQL 客户机 Dim PubsConn As SqlConnection = New SqlConnection & _
("Data Source=server;integrated security=sspi;" & _
"initial Catalog=pubs;")Dim testCMD As SqlCommand = New SqlCommand & _
("TestProcedure3", PubsConn)testCMD.CommandType = CommandType.StoredProcedureDim RetValue As SqlParameter = testCMD.Parameters.Add & _
("RetValue", SqlDbType.Int)
RetValue.Direction = ParameterDirection.ReturnValue
Dim auIDIN As SqlParameter = testCMD.Parameters.Add & _
("@au_idIN", SqlDbType.VarChar, 11)
auIDIN.Direction = ParameterDirection.Input
Dim auFname As SqlParameter = testCMD.Parameters.Add & _
("@au_fnam", SqlDbType.VarChar, 30)
auFname.Direction = ParameterDirection.InputauIDIN.Value = "213-46-8915"
auFname.Value = "Marjorie"
PubsConn.Open()Dim rvRows As Integer = testCMD.ExecuteNonQuery
Console.WriteLine(rvRows)
Console.WriteLine(RetValue.Value)
OLE DB 数据提供程序 Dim PubsConn As OleDbConnection = New OleDbConnection & _
("Provider=SQLOLEDB;Data Source=server;" & _
"integrated Security=sspi;initial catalog=pubs;")Dim testCMD As OleDbCommand = New OleDbCommand & _
("TestProcedure3", PubsConn)testCMD.CommandType = CommandType.StoredProcedureDim RetVal As OleDbParameter = testCMD.Parameters.Add & _
("RetVal", OleDbType.Integer)
RetVal.Direction = ParameterDirection.ReturnValue
Dim IdIn As OleDbParameter = testCMD.Parameters.Add & _
("@au_idIN", OleDbType.VarChar, 11)
IdIn.Direction = ParameterDirection.Input
Dim FnameIn As OleDbParameter = testCMD.Parameters.Add & _
("@au_fname", OleDbType.VarChar, 30)
FnameIn.Direction = ParameterDirection.InputIdIn.Value = "213-46-8915"
FnameIn.Value = "Marjorie"PubsConn.Open()Dim intRowAffected As Integer = testCMD.ExecuteNonQueryConsole.WriteLine("Number of Rows affected:" & intRowAffected)
Console.WriteLine(RetVal.Value)
修改 Connection 对象的连接字符串,以便指向运行 SQL Server 的服务器。
运行此代码。"输出"窗口显示受影响的行数 (intRowAffect) 和返回参数的值。