您的位置:首页 > 编程语言 > C#

C#调用存储过程

2012-02-08 00:27 148 查看
1、调用没有输入输出参数的存储过程

存储过程:

CREATE PROC GETAllBooks

AS

BEGIN

SELECT * FROM Books

END

调用示例:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "GetAllBooks";

cmd.Connection = conn;

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataTable dt = new DataTable();

da.Fill(dt);

GridView1.DataSource = dt;

GridView1.DataBind();

2、调用有输入参数的存储过程

存储过程:

CREATE PROC ProInput

@bookname varchar(20)

AS

BEGIN

INSERT INTO Books Values('ddd777',@bookname,2)

END

调用示例:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "ProInput";

cmd.Connection = conn;

SqlParameter[] param = {

new SqlParameter("@bookname",SqlDbType.VarChar,20)

};

param[0].Value = "测试程序";

cmd.Parameters.Add(param[0]);

Response.Write(cmd.ExecuteNonQuery().ToString() + "<br/>");

3、调用有输出参数的存储过程

存储过程:

CREATE PROC ProOutput

@id int output

AS

BEGIN

INSERT INTO Books Values('ddd777','output parameter',2)

set @id=@@identity

END

调用示例:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "ProOutput";

cmd.Connection = conn;

SqlParameter[] param = {

new SqlParameter("@id",SqlDbType.Int,4),

};

param[0].Direction = ParameterDirection.Output;

cmd.Parameters.Add(param[0]);

Response.Write(cmd.ExecuteNonQuery().ToString() + "<br/>");

Response.Write(param[0].Value.ToString());

4、调用有输入输出参数的存储过程

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "ProInputOutput";

cmd.Connection = conn;

SqlParameter[] param = {

new SqlParameter("@id",SqlDbType.Int,4),

new SqlParameter("@bookname",SqlDbType.VarChar,20)

};

param[0].Direction = ParameterDirection.Output;

param[1].Value = "测试程序";

cmd.Parameters.Add(param[0]);

cmd.Parameters.Add(param[1]);

Response.Write(cmd.ExecuteNonQuery().ToString() + "<br/>");

Response.Write(param[0].Value.ToString());

5、调用有输入返回值参数的存储过程

存储过程:

Create ProcProInputReturn

@bookname varchar(20)

AS

BEGIN

INSERT INTO Books Values('www1010',@bookname,2)

return @@identity

END

调用示例:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "ProInputReturn";

cmd.Connection = conn;

SqlParameter[] param = {

new SqlParameter("@bookname",SqlDbType.VarChar,20),

new SqlParameter("@val",SqlDbType.Int,4)

};

param[0].Value = "书的名称";

param[1].Direction = ParameterDirection.ReturnValue;

cmd.Parameters.Add(param[0]);

cmd.Parameters.Add(param[1]);

Response.Write(cmd.ExecuteNonQuery().ToString() + "<br/>");

Response.Write(param[1].Value.ToString());

6、调用有输入输出返回值的存储过程

存储过程:

create proc ProInputoutputReturn

@id int output,

@bookname varchar(20)

AS

begin

INSERT INTO Books Values('www10414',@bookname,2)

set @id=@@identity

return @@rowcount

end

调用示例:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "ProInputoutputReturn";

cmd.Connection = conn;

SqlParameter[] param = {

new SqlParameter("@id",SqlDbType.Int,4),

new SqlParameter("@bookname",SqlDbType.VarChar,20),

new SqlParameter("@val",SqlDbType.VarChar,20)

};

param[0].Direction = ParameterDirection.Output;

param[1].Value = "书的名称";

param[2].Direction = ParameterDirection.ReturnValue;

cmd.Parameters.Add(param[0]);

cmd.Parameters.Add(param[1]);

cmd.Parameters.Add(param[2]);

Response.Write(cmd.ExecuteNonQuery().ToString() + "<br/>");

Response.Write(param[0].Value.ToString()+"<br/>");

Response.Write(param[2].Value.ToString());

7、具有返回值与记录集的存储过程

存储过程:

create proc prooutputresult

@id int output,

@bookname varchar(20)

as

begin

INSERT INTO Books Values('www10414',@bookname,2)

set @id=@@identity

select * from books

return @@rowcount

end

调用示例:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "prooutputresult";

cmd.Connection = conn;

SqlParameter[] param = {

new SqlParameter("@id",SqlDbType.Int,4),

new SqlParameter("@bookname",SqlDbType.VarChar,20),

new SqlParameter("@val",SqlDbType.VarChar,20)

};

param[0].Direction = ParameterDirection.Output;

param[1].Value = "书的名称";

param[2].Direction = ParameterDirection.ReturnValue;

cmd.Parameters.Add(param[0]);

cmd.Parameters.Add(param[1]);

cmd.Parameters.Add(param[2]);

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataTable dt = new DataTable();

da.Fill(dt);

GridView1.DataSource = dt;

GridView1.DataBind();

Response.Write(param[0].Value.ToString()+"<br/>");

Response.Write(param[2].Value.ToString());

8、返回多个记录集的存储过程

存储过程:

Create proc getmultiLog

as

begin

select * from books

select * from admin

end

调用过程:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StrConn"].ConnectionString);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "getmultiLog";

cmd.Connection = conn;

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds);

GridView1.DataSource = ds.Tables[0];

GridView1.DataBind();

GridView2.DataSource = ds.Tables[1];

GridView2.DataBind();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息