MSSQL データ アクセス マネージャーでこのコードに問題があります。返されたレコードが予期したものではない場合があります。DataReader 列は適切なテーブルから取得されますが、フィールドは別の要求から取得されたようです。
この動作は、同じテーブルで多くの同時リクエストを取得したときに発生し、結果は「select A rerun B, select B return D, select C rerun 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パイプと一致しないかを理解していません...
助けてくれてありがとう。-アレックス