您的位置:首页 > 数据库

在C#中使用SQL存储过程说明

2007-03-04 00:04 253 查看
一、表的创建sql语句:

CREATE TABLE [tree] (
[node_id] [int] NOT NULL ,
[node_name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[pat_id] [int] NULL ,
[url] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[icon] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[memo] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [tree_pk] PRIMARY KEY CLUSTERED
(
[node_id]
) ON [PRIMARY]
) ON [PRIMARY]
GO

二、创建一个有输入、输出、返回值参数的存储过程:

create proc proc_out @uid int,@output varchar(200) output

as

--select结果集

select * from tree where node_id>@uid

--对输出参数进行赋值

set @output='记录总数:'+convert(varchar(10),(select count(*) from tree))

--使用return,给存储过程一个返回值。

return 200;

go

三、在C#中,操作存储过程:

[b] 3.1 使用带有参数的sql语句

private void sql_param()

3.2 存储过程的使用标准版

private void sql_proc()
private void sql_jyh()
create proc proc_out2 @uid int,@patid int,@output varchar(200) output

as

--select结果集

select * from tree where node_id>@uid and pat_id = @patid

--对输出参数进行赋值

set @output='记录总数:'+convert(varchar(10),(select count(*) from tree))

--使用return,给存储过程一个返回值。

return 200;

go

private void More()
{
SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=sms");
string sql = "proc_out2";
SqlCommand cmd = new SqlCommand(sql, conn);
//把Command执行类型改为存储过程方式,默认为Text。
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("@uid",SqlDbType.Int).Value = 1 ;
cmd.Parameters.Add("@patid", SqlDbType.Int).Value = 1;
cmd.Parameters.Add("@output", SqlDbType.VarChar, 100);
cmd.Parameters["@output"].Direction = ParameterDirection.Output;

//cmd.Parameters.Add(new SqlParameter("@uid", SqlDbType.Int)).Value = 1;//"A1**";
//cmd.Parameters.Add(new SqlParameter("@patid", SqlDbType.Int)).Value = 1; //"A2**";
//SqlParameter param = new SqlParameter("@output", SqlDbType.VarChar, 88);
//param.Direction = ParameterDirection.Output;
// cmd.Parameters.Add(param);

//cmd.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
string rtnstr = cmd.Parameters["@output"].Value.ToString();
Response.Write("打印输出参数:" + rtnstr);
this.Dgd_student.DataSource = ds;
this.Dgd_student.DataBind();
}
[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: