特定のパラメータで動作しない単純なSQLコマンドがあります。
たとえば、TweetID = 59
とUserID = 1
の場合、値を返します。
ですが、TweetID = 8
とUserID = 1
の場合は値を返しません。
その理由がわかりますか?単純なSQLコマンドは、特定のパラメータでは機能しません。
public static int GetReTweetIdFromReTweetByUserIdAndTweetId(int TweetID,int UserID)
{
string sql = "SELECT [ReTweetID] FROM [ReTweet] WHERE [TweetID] = [@TID] AND [UserID] = [@UID]";
OleDbConnection conn = ConnectToDb();
OleDbCommand com = new OleDbCommand(sql, conn);
com.Parameters.Clear();
OleDbParameter objParamater;
objParamater = com.Parameters.Add("[@UID]", OleDbType.Integer);
objParamater.Direction = ParameterDirection.Input;
objParamater.Value = UserID;
objParamater = com.Parameters.Add("[@TID]", OleDbType.Integer);
objParamater.Direction = ParameterDirection.Input;
objParamater.Value = TweetID;
OleDbDataAdapter da = new OleDbDataAdapter(com);
DataTable dt = new DataTable();
int id=0;
try
{
conn.Open();
da.Fill(dt);
id = int.Parse(dt.Rows[0][0].ToString());
}
catch (Exception err)
{
throw err;
}
finally
{
da.Dispose();
dt.Dispose();
com.Dispose();
conn.Close();
conn.Dispose();
}
return id;
}
トピックを外してください:[usingステートメント](http://www.dotnetperls.com/using)を見てください。あなたのコードをたくさん整理し、 'IDisposable'オブジェクトに' Dispose() 'を呼び出す手間を省くことができます。 –
あなたのcatchブロックで 'throw err'を実行しないと、スタックトレースがリセットされます。あなたの時間を無駄にしているだけで、「スロー」するか、キャッチブロックを一掃してください。 – user1666620
データベースに対してスクリプトを直接実行すると結果が返されますか? – user1666620