数据库中的存储过程在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
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 }
本文介绍了如何在C#项目中使用SQL Server的存储过程与自定义函数,包括不带参数和带参数的存储过程的使用方法,以及如何调用SQL自定义函数返回特定信息。通过实例演示了如何在项目中整合数据库操作,为开发者提供实用的编程技巧。
4529

被折叠的 条评论
为什么被折叠?



