数据库中的存储过程在C#项目中的使用举例
2012-12-06 21:49
387 查看
数据库中的存储过程在C#项目中的使用举例
一直以来感觉在SQL server中写的些什么触发器啊,存储过程啊,怎么能在项目中使用呢,今天通过实验,明白了,先给出实例给大家以供参考:
存储过程
以下是SQL中两个存储过程:
一个是带参数的存储过程,一个是不带参数的存储过程.下面介绍怎么在VS2005中使用这两个存储过程.
(一).不带参数的存储过程:
同样,在页面中添加了一个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
}
一直以来感觉在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
}
相关文章推荐
- c#使用数据库存储过程的基本方法
- asp.net 数据库存储过程使用 c#
- 使用SQL Server系统存储过程遍列数据库和数据库表
- [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
- 在C#中使用EntityFramework(EF)生成实体进行存储过程的调用
- 如何使用VS.NET调试数据库存储过程
- C#中对数据库的基本操作(增删改以及调用存储过程)
- c#如何使用webservice、存储过程及存储过程的创建(简单模仿类似QQ统计用户在线时间为例)
- [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- 关于在存储过程中使用游标操作数据库
- 关于codesmith的一点使用--自动生成数据库中所有表的存储过程使用模板
- 使用Kettle调用数据库中的存储过程
- 如何使用Sybase ASE数据库的扩展存储过程?
- 一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed
- 数据库通用访问过程及带传出参数存储过程的使用
- 在VS2005中采用c#书写存储过程和函数等以及使用
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
- 关于在存储过程中使用游标操作数据库
- 使用数据库存储过程完成一个简单分页