为什么要求声明标量变量@Code
private DataSet SearchRecord ( string lQuery, string SwiftCode)
using ( pConnectionState = new SqlConnection(pConnectionString) )
{
try
{
string TableName = "ACCOUNT_DETAILS";
pConnectionState.Open();
SqlCommand lSqlCommand = new SqlCommand(lQuery , pConnectionState);
lSqlCommand.Parameters.Add("@SwiftCode" , SqlDbType.VarChar).Value = SwiftCode;
SqlDataAdapter lSqlDataAdapter = new SqlDataAdapter(lQuery, pConnectionState);
DataTable lDataTable = new DataTable(TableName);
DataSet lDataSet = new DataSet();
lSqlDataAdapter.Fill(lDataSet, TableName);
pConnectionState.Close();
return lDataSet;
}
catch ( Exception ex )
{
MessageBox.Show("Error: " + ex.ToString());
}
return null;
}
}
答案 0 :(得分:2)
这是一个看不到树木的例子:
你正在构建你的 SqlCommand lSqlCommand 就好了(现在用@SwiftCode替换@Code之后),但你永远不会使用它。而是使用构造函数创建 SqlDataAdapter lSqlDataAdapter ,该构造函数接受命令文本和连接对象,完全缺少参数。
您只需要像这样创建SqlDataAdapter:
SqlDataAdapter lSqlDataAdapter = new SqlDataAdapter(lSqlCommand);
并且您的查询将按预期运行。