私はすべてを検索して試しましたが、これを理解できません。簡単なことをしようとしていますが、何か間違っているようです。基本的に、入金したユーザーは true を返し、入金していない場合は false を返します。これは簡単だと思いますが、私はこれに困惑しています。
エラーは次のとおりです。
ConnectionString プロパティが初期化されていません。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.InvalidOperationException: ConnectionString プロパティが初期化されていません。
ソース エラー:
Line 59: Cmd.Parameters.AddWithValue("@UserID", userId);
Line 60: con.Open();
Line 61:
Line 62: result = (int)Cmd.ExecuteScalar();
スタック トレースの先頭は次のとおりです。
[InvalidOperationException: ConnectionString プロパティが初期化されていません。] System.Data.SqlClient.SqlConnection.PermissionDemand() +4879939 System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20 System.Data.ProviderBase.DbConnectionClosed.OpenConnection( DbConnection outerConnection、DbConnectionFactory connectionFactory) +117 System.Data.SqlClient.SqlConnection.Open() +122
true または false を返す方法は次のとおりです。
public static bool HasDeposit(int userId)
{
int result = 0;
//since executeScalar is intended to retreive only a single value
//from a query, we select the number of results instead of the email address
//of each matching result.
string queryTransaction = "SELECT COUNT(UserID) FROM Transaction WHERE TransactionTypeID = 6 AND UserID = @UserID";
string constr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
SqlConnection con = new SqlConnection(constr);
SqlCommand Cmd = new SqlCommand(queryTransaction, con);
Cmd.Parameters.AddWithValue("@UserID", userId);
con.Open();
result = (int)Cmd.ExecuteScalar();
//returning a boolean comparator works like this :
//will return true if the result is greater than zero, but false if it is not.
con.Close();
return result > 0;
}
これに関するヘルプ/ガイダンスは大歓迎です。