我的問題已經修復,我的主要問題是從xAMl中的文本框中獲取信息,該信息在該窗口關閉並且另一個打開後被擦除。雖然答案確實解決了我的其他問題,並使我的代碼更加簡單易讀。非常感謝你!c#SqlDataReader未找到值
所以我目前正在爲個人項目建立一個日曆,並且正在致力於向數據庫添加事件,Events的這個表存儲兩個varchars和一個int(名稱,描述,用戶ID),userid是一個外鍵並鏈接到用戶表。當我使用下面的代碼嘗試並拉取用戶輸入的用戶名時,它告訴我沒有現有值。
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