尝试使用更新语句,但当我执行该程序时,它声称: 用户类型数据标准不匹配
当我点击updatebutton时,我希望数据库更新ID =
private void Update_Click(object sender, EventArgs e)
{
//OPENING CONNECTION
db.Open();
int idd = int.Parse( InstructorIDText.Text);
OleDbCommand df = new OleDbCommand("UPDATE Instructors SET FirstName='"+FNText.Text+"',LastName='"+Lntext.Text+"',Street='"+StreetText.Text+"',City='"+CityText.Text+"',State='"+StateText.Text+"',Zip='"+ZipText.Text+"',Office='"+OfficeText.Text+"',EMail='"+EmailText.Text+"' WHERE ID = " + idd +"", db);
//creating parameters
df.Parameters.AddWithValue("@ID", InstructorIDText.Text);
df.Parameters.AddWithValue("@FirstName", FNText.Text);
df.Parameters.AddWithValue("@LastName", Lntext.Text);
df.Parameters.AddWithValue("@Street", StreetText.Text);
df.Parameters.AddWithValue("@City", CityText.Text);
df.Parameters.AddWithValue("@State", StateText.Text);
df.Parameters.AddWithValue("@Zip", ZipText.Text);
df.Parameters.AddWithValue("@Office", OfficeText.Text);
df.Parameters.AddWithValue("@EMail", EmailText.Text);
df.ExecuteNonQuery();
db.Close();
}
答案 0 :(得分:0)
在查询中使用@parameter
而不是连接精确值
对于MS-SQL
//OPENING CONNECTION
db.Open();
int idd = int.Parse(InstructorIDText.Text);
OleDbCommand df = new OleDbCommand("UPDATE Instructors SET FirstName=@FirstName,LastName=@LastName,Street=@Street,City=@City,State=@State,Zip=@Zip,Office=@Office,EMail=@EMail WHERE ID = @ID", db);
//creating parameters
df.Parameters.AddWithValue("@ID", InstructorIDText.Text);
df.Parameters.AddWithValue("@FirstName", FNText.Text);
df.Parameters.AddWithValue("@LastName", Lntext.Text);
df.Parameters.AddWithValue("@Street", StreetText.Text);
df.Parameters.AddWithValue("@City", CityText.Text);
df.Parameters.AddWithValue("@State", StateText.Text);
df.Parameters.AddWithValue("@Zip", ZipText.Text);
df.Parameters.AddWithValue("@Office", OfficeText.Text);
df.Parameters.AddWithValue("@EMail", EmailText.Text);
df.ExecuteNonQuery();
db.Close();
答案 1 :(得分:-1)
使用add with value时,请使用变量idd而不是.Text属性。该查询期望您的@id参数为int,但您提供的是字符串。
看看是否有帮助