問題が修正されました。主な問題は、そのウィンドウが閉じられて別のウィンドウが開いた後に消去されたxamlのテキストボックスから情報を取得していたことです。答えは私の他の問題を解決し、私のコードをはるかに簡単で読みやすくしました。とてもありがとう!C#SqlDataReaderが値を見つけられない
私は現在、パーソナルプロジェクト用のカレンダーを作成し、データベースにイベントを追加する作業を行っています。この表には、2つのvarcharsとint(名前、説明、ユーザーID)が格納されています。外部キーであり、ユーザーテーブルにリンクされています。以下のコードを使用して、入力したユーザー名のユーザーIDを取得しようとすると、既存の値が存在しないことがわかります。
using (SqlConnection connection = new SqlConnection())
{
connection.ConnectionString =
"Data Source=calenderserver.database.windows.net;" +
"Initial Catalog=Calender;" +
"User id=*******;" +
"Password=*******;" +
"MultipleActiveResultSets = true";
connection.Open();
SqlCommand com = new SqlCommand("Select UserId from Users Where UserName = @user", connection);
com.Parameters.AddWithValue("@user", UsernameTextBox.Text);
SqlDataReader reader = com.ExecuteReader();
reader.Read();
int userid = reader.GetInt32(1);
messages.Text = "Event Added";
SqlCommand command = new SqlCommand("INSERT INTO [Events] VALUES (@eventname, @eventdesc)", connection);
command.Parameters.AddWithValue("@eventname", name);
command.Parameters.AddWithValue("@eventdesc", description);
command.Parameters.AddWithValue("@userid", userid);
command.ExecuteNonQuery();
reader.Close();
connection.Close();
}
実際のSQLクエリで同じコマンドを実行しても、適切な値が返されます。
私は完全にこれに失われていますし、複数のソースやソリューションをチェックして、助けを本当に感謝します。
を使用して、データリーダーから切り替えることで、あなたのコードを簡素化することができますこの質問の文字列..... – MikeTheLiar
あなたはカレンダープロジェクトとイベントテーブルを非常に詳細に記述しますが、問題は説明していないユーザーテーブルのみを参照しています... – Toastrackenigma
@mikeTheLiarそれは心配しないでください実際のアカウント情報ですが、誰かがそれを*に変更しました。これはさらに優れています。 – RButler