私は最も奇妙な問題を抱えています。以下はほとんどの場合機能しますが、adapter.fill ステートメントにブレークポイントを設定し、params をチェックし、確実にデータを返す SQL Management Studio を介してそれらを実行したにもかかわらず、「時々」データを返すことができません。 )
したがって、これは標準の c# SQL クライアント呼び出しです。
SqlCommand command = new SqlCommand();
command.CommandType = CommandType.StoredProcedure;
command.Connection = connection;
接続は間違いなく正常に開かれており、別の呼び出しでも使用されているため使用されています..実際には後続の呼び出しも機能します..ただし、私の場合、次の「時々」失敗します:
command.CommandText = "myprocname";
command.Parameters.AddWithValue("@param1", param1value);
command.Parameters.AddWithValue("@param2", param2value);
command.Parameters.AddWithValue("@param3", param3value);
command.Parameters.AddWithValue("@param4", param4value);
そして、データセットを埋めるために:
DataSet ds = new DataSet();
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
adapter.Fill(ds);
}
command.Dispose();
本当に奇妙なことは何も起こっておらず、上記はほとんどの場合うまくいきます..私が期待したものを返さなかった場合、adapter.fillステートメントの直前にブレークポイントを置き、コマンドテキストと各パラメータをチェックしました/values being passed.. SQL Management Studio を開き、これらのパラメーターを使用して proc を実行したところ、期待されるデータが十分に返されました。
プロシージャは非常に単純で、ほとんどの場合データが返されます...
とにかくprocを失敗させることはできませんが、接続タイムアウト、実行のタイミングなどをチェックしたので、これは私の狂気を駆り立てています..最もクレイジーなことは、proc名とパラメーターがすべて正しいことだと思います(余分なパラメーターはありません誤って渡されたなど)..そして手動で実行すると、データが返されます..しかし、fillステートメントを介してはそうではないようです(ただし、たまにしかありません!)。
この狂気の助けをいただければ幸いです!!