我的问题已经修复,我的主要问题是从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