我的 MSSQL 数据访问管理器中的此代码存在问题。有时返回的记录不是预期的。DataReader 列来自好表,但字段似乎来自另一个请求。
当我在同一张表上同时收到很多请求时会出现这种行为,结果更像是“选择 A 重新运行 B,选择 B 返回 D,选择 C 重新运行 Z,...”
public bool Read(string ID)
{
bool _return = false;
System.Data.SqlClient.SqlConnection Connection = new System.Data.SqlClient.SqlConnection(ConnectionString);
try
{
string Query = "Select * From Sounds Where ID = '" + ID + "'";
System.Data.SqlClient.SqlDataReader DataReader;
using (System.Data.SqlClient.SqlCommand Command = new SqlCommand())
{
Command.Connection = Connection;
Command.CommandText = Query;
Connection.Open();
DataReader = Command.ExecuteReader();
}
if (DataReader.Read())
{
FillClass(DataReader);
_return = true;
}
else
{
_return = false;
}
if (! DataReader.IsClosed) DataReader.Close();
}
catch (Exception e)
{
_return = false;
}
finally
{
if ((Connection != null) && (Connection.State == ConnectionState.Open)) {
Connection.Close();
}
}
return _return;
}
我不明白 SQL 2012 返回错误记录或 .Net CLR 与 SQL 管道不匹配...
感谢您的帮助。-亚历克斯