.Net 调用存储过程取到return的返回值
1.存储过程
SETANSI_NULLSON GO SETQUOTED_IDENTIFIERON GO --============================================= --Author:<Author,,Name> --Createdate:<CreateDate,,> --Description:<Description,,> --============================================= alterPROCEDUREGetOrderLine @orderIdvarchar(50) AS BEGIN --SETNOCOUNTONaddedtopreventextraresultsetsfrom --interferingwithSELECTstatements. SETNOCOUNTON; select*fromorderLinewhereOrderId=@orderId; return123; END GO
注意存储过程只能返回int类型,如果返回一个字符串,将会报类型转化错误
2后台调用
DataTabledt=newDataTable(); stringconnStr=System.Configuration.ConfigurationManager.ConnectionStrings["BLL.Properties.Settings.ShoppingDBConnectionString"].ToString(); using(SqlConnectionconn=newSqlConnection(connStr)){ stringcallName="GetOrderLine"; using(SqlCommandcommand=newSqlCommand(callName,conn)) { command.CommandType=CommandType.StoredProcedure; SqlParameter[]sps={newSqlParameter("@orderId",SqlDbType.VarChar,50), newSqlParameter("@return",SqlDbType.Int)//注册返回值类型 }; sps[0].Value="43c7cf15-6b2f-4d18-92b2-dbe827f30dfc"; sps[1].Direction=ParameterDirection.ReturnValue;//返回参数类型 command.Parameters.AddRange(sps); using(SqlDataAdaptersda=newSqlDataAdapter()){ sda.SelectCommand=command; sda.Fill(dt); //Console.WriteLine(sda.GetFillParameters()[1].Value); Console.WriteLine(sps[1].Value);//取到返回的值 } } } if(dt.Rows.Count>0){ for(inti=0;i<dt.Rows.Count;i++) { Console.WriteLine(dt.Rows[i]["ProductId"]+":"+dt.Rows[i]["ProductPrice"]+":"+dt.Rows[i]["ProductCount"]); } } Console.ReadLine();