现在的位置: 首页 > 综合 > 正文

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

2013年02月03日 ⁄ 综合 ⁄ 共 2764字 ⁄ 字号 评论关闭

数据库中的存储过程在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
}

抱歉!评论已关闭.