C#調用存儲過程

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();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章