gpt4 book ai didi

c#在 "using"代码块中执行带参数的SqlCommand

转载 作者:行者123 更新时间:2023-11-30 14:32:32 24 4
gpt4 key购买 nike

我试图通过“使用”代码块执行 SQL 命令,但似乎无法让它与参数一起工作。我收到错误消息:“当前上下文中不存在参数”,有人对此问题有可能的解决方案吗?这是我的代码:

DataTable dt = new DataTable();
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
using (var cmd = new SqlCommand(" SELECT FName" +
" FROM EmployeeTable " +
" WHERE EmployeeId = @empId",
con)
{
Parameters.Add(new SqlParameter("@empId",empId))
})
{
try
{
con.open();
dt.Load(cmd.ExecuteReader());
}
catch(Exception ex)
{
//(snip) Log Exceptions
}
}
return dt;

最佳答案

不要为此使用构造函数初始化。

DataTable dt = new DataTable();
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
using (var cmd = new SqlCommand(" SELECT FName" +
" FROM EmployeeTable " +
" WHERE EmployeeId = @empId",
con))
{
cmd.Parameters.Add(new SqlParameter("@empId",empId));
try
{
con.open();
dt.Load(cmd.ExecuteReader());
}
catch(Exception) //BAD BAD BAD!!! Why are you doing this!
{
}
}
return dt;

另外,为什么要捕获所有异常并将它们扔掉,这是一件可怕的事情。如果你有一个你认为会很常见的异常,首先看看你是否可以重构你的代码来检查会导致它的输入值并且根本不会抛出它(甚至可能抛出一个 ArgumentException 你自己的),如果你不能这样做,那么检查那个特定的异常,而不是每一个可能的异常。

关于c#在 "using"代码块中执行带参数的SqlCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com