您的位置:首页 > 数据库

数据库中的存储过程在C#项目中的使用举例

2012-12-06 21:49 387 查看
数据库中的存储过程在C#项目中的使用举例

一直以来感觉在SQL server中写的些什么触发器啊,存储过程啊,怎么能在项目中使用呢,今天通过实验,明白了,先给出实例给大家以供参考:

存储过程

以下是SQL中两个存储过程:

CREATE PROCEDURE dbo.oa_selectalluser
AS
select * from UserInfoGOCREATE
PROCEDURE dbo.oa_SelectByID
@id intAS
select * from UserInfo
where ID=@idGO


一个是带参数的存储过程,一个是不带参数的存储过程.下面介绍怎么在VS2005中使用这两个存储过程.

(一).不带参数的存储过程:

protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{              //不带参数的存储过程的使用方法
SqlConnection conn = new SqlConne
ction(ConfigurationManager.ConnectionStrings["oaConnectionString"].ToString());       SqlDataAdapter da = new SqlDataAdapter();
DataSet ds=new DataSet();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "oa_SelectAllUser";
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
在页面中添加了一个GridView控件用来绑定执行存储过程得到的结果.
(二).带参数的存储过程:
protected void btn_search_Click(object sender, EventArgs e)
  {    //带参数的存储过程的使用方法
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["oaConnectionString"].ToString());
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "oa_SelectByID";
da.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@id", SqlDbType.Int);
param.Direction = ParameterDirection.Input;
param.Value = Convert.ToInt32(txt_value.Text);
da.SelectCommand.Parameters.Add(param);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}

同样,在页面中添加了一个GridView控件用来绑定执行存储过程的结果,另外,在页面中还添加了一个textbox控件和一个BUTTON按钮,上面的执行存储过程是放在按钮的onclick事件中的.textbox控件用来接收存储过程的参数.

C#调用SQL自定义函数返回值

1 --SQL自定义函数:

2

3 CREATE
FUNCTION
[GetProjectID] (@headStr
nvarchar(10),@date
datetime)

4 )

5

6 RETURNS
NVARCHAR(200)

7

8 AS

9

10 BEGIN

11

12 --不能在自定义函数中用INSERT INTO

13

14 --insert into emos_cust(cust_name,dates)values(

15

16 --@headStr,@date

17

18 --)

19

20 return
'TEST BY HANSHU'

21 END



1 ///
<summary>

2
/// 获取项目文件编号 geovindu@163.com 涂聚文

3
///
</summary>

4
private
void FileNo()

5
{

6

7
SqlConnection conn =
new SqlConnection(connectionString);

8
string strSql
=
"GetProjectID";
//自定SQL函數

9
SqlCommand cmd =
new SqlCommand(strSql, conn);

10
cmd.CommandType = CommandType.StoredProcedure;

11
cmd.Parameters.Add("@headStr", SqlDbType.NVarChar).Value
=
"ZQ3";
//輸入參數

12
cmd.Parameters.Add("@date", SqlDbType.DateTime).Value
= System.DateTime.Now.ToShortDateString();
//輸入參數

13
cmd.Parameters.Add("@returnString", SqlDbType.NVarChar);

14
cmd.Parameters["@returnString"].Direction
= ParameterDirection.ReturnValue;
//返回參數

15
try

16
{

17
conn.Open();

18
object o= cmd.ExecuteScalar();

19

20
this.txtAFileNO.Text
= cmd.Parameters["@returnString"].Value.ToString();

21

22
//Response.Write("");

23

24
}

25
catch (Exception ex)

26
{

27

28
this.txtAFileNO.Text
= ex.Message;

29

30
}

31
finally

32
{

33

34
if (!(conn.State
== ConnectionState.Closed))

35
{

36

37
conn.Close();

38

39

40
}

41

42
}

43

44

45
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐