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();
您有两个选择(据我所知):
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
的第二种方法更清楚和更干净。