我试图通过“使用”代码块执行SQL命令,但似乎无法使其与Parameters一起使用。我收到错误消息:“当前上下文中不存在参数”,有人可以解决此问题吗?这是我的代码:
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自己的值),并且是否您不能这样做,然后检查该特定异常,而不是所有可能的异常。
ArgumentException