sql server-在C#中使用sql查询.定义存储过程时出现问题

本文关键字:sql 存储过程 问题 定义 server- 查询 | 更新日期: 2023-09-27 17:57:32

我在下面分享我的代码片段:

string str = "select * from contacts";
DataSet dt = Global.getdatatablefromquery(str);
ExcelGrid.DataSource = dt;
ExcelGrid.DataBind();

我正在将所有查询更改为存储过程,但我不知道如何在这段代码中定义我的存储过程?我想要一些类似的东西:

string str = "storedprocedurename";
DataSet dt = Global.getdatatablefromquery(str);
ExcelGrid.DataSource = dt;
ExcelGrid.DataBind();

sql server-在C#中使用sql查询.定义存储过程时出现问题

您有两个选择(据我所知)

1。通过指定EXEC explicitly将其作为Text执行。

例如:

cmd = new SqlCommand("EXEC storedprocedurename(@p1, @p2)");
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@p1", 1);
cmd.Parameters.Add("@p2", 2);

2.您可以将CommandType用作StoredProcedure

例如:

cmd = new SqlCommand("storedprocedurename");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@p1", 1);
cmd.Parameters.Add("@p2", 2);

这两种方法的区别在于消息泵送是如何发生的。(来源)

使用其中CommandType被明确指定为StoredProcedure的第二种方法更清楚和更干净。