您的位置:首页 > 编程语言 > C#

在C#中使用存储过程(带输入参数)

2010-05-28 21:24 239 查看
1首先在SQL Server中使用存储过程

CREATE procedure [dbo].[sp_dia]
@age int,
@tot int=0 output
as
select Sage,Sname
from Students
where Sage = @age;
select @tot = COUNT(*)
from Students
where Sage = @age
return @tot

2然后创建一个控制台应用程序项目

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace CallSp2
{
class CallSp2
{
static void Main(string[] args)
{
SqlConnection conn = new SqlConnection(@"
server = ./WB_JAMES;
integrated security = SSPI;
database = master");
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_dia";
/////////
SqlParameter inparm = cmd.Parameters.Add(
"@age", SqlDbType.Int);
inparm.Direction = ParameterDirection.Input;
inparm.Value = 18;
///////////
SqlParameter ouparm = cmd.Parameters.Add(
"@tot", SqlDbType.Int);
ouparm.Direction = ParameterDirection.Output;
///////////////
SqlParameter retval = cmd.Parameters.Add(
"return_value", SqlDbType.Int);
retval.Direction = ParameterDirection.ReturnValue;
///////////
SqlDataReader rdr=cmd.ExecuteReader();
while(rdr.Read())
{
Console.WriteLine("{0} {1}"
, rdr[0].ToString().PadRight(5), rdr[1].ToString());
}
rdr.Close();

/////////
Console.WriteLine(
"The output parameter value is {0}",
cmd.Parameters["@age"].Value);
///////////
Console.WriteLine(
"The return value is {0}",
cmd.Parameters["return_value"].Value);
}
catch (System.Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
conn.Close();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐