すでに適切に実装されているユーザー名とともに、SQLデータベースの変数にアクセスする必要があります。次のステートメントを使用してデータベースにクエリを実行します。
private const string _getUserByUsernameQuery = @"
SELECT
[User].[username]
FROM
[User] WITH (NOLOCK)
INNER JOIN [Company] WITH (NOLOCK)
ON [User].[companyId] = [Company].[id]
WHERE
[User].[username] = @username
AND [User].[password] = @password";
次に、データベースに接続して、ユーザー名にアクセスします。
using (SqlConnection connection = new SqlConnection(SQLConfiguration.ConnectionString))
{
SqlCommand command = new SqlCommand(_getUserByUsernameQuery, connection);
command.Parameters.AddWithValue("@username", username);
command.Parameters.AddWithValue("@password", password);
try
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
Username = Convert.ToString(reader["username"]);
//CompanyId = Convert.ToString(reader["companyId"]);
lblUsername = Username;
//lblCompanyId = CompanyId;
Debug.WriteLine("Testing2::");
Debug.WriteLine(lblUsername);
//Debug.WriteLine(lblCompanyId);
}
}
}
catch (Exception)
{
if(connection.State == System.Data.ConnectionState.Open)
connection.Close();
}
}
reader ["username"]をUsernameに設定したifステートメントで、debugを使用してUsernameを出力しましたが、値は正しいです。CompanyIdに関連するコメントに私が持っているのは、私がやりたいことですが、できませんでした。これを行ってもエラーは発生しませんが、ステートメント全体が無視されます(それ以外の場合に機能するUsername変数も無視されます)。クエリ文字列に基づいて、変数companyIdにアクセスするにはどうすればよいですか?