我正在尝试为作业创建更新声明,以便用户可以更改其帐户信息。每当尝试执行此操作时,都会收到一条错误消息,指出“更新语句中的语法错误”。我正在修改代码以从另一个工作中生成此语句的地方开始工作,因此该代码确实可以工作,因此我确定我必须缺少一些小细节。下面是单击按钮的代码,这些按钮会启动创建update语句的方法以及该方法本身。
按钮单击:
protected void btnConfirm_Click(object sender, EventArgs e)
{
bool userUpdateError = false;
string tempPath = Server.MapPath("~/App_Data/Programmaholics.mdb");
clsDataLayer myDataLayer = new clsDataLayer(tempPath);
try
{
myDataLayer.UpdateUser(lblUsername.Text, lblCity.Text, lblState.Text, lblFavorite.Text, lblLeastFavorite.Text, lblDate.Text, Convert.ToInt32(UserID.Text));
}
catch (Exception error)
{
userUpdateError = true;
string message = "Error updating user, please check form data. ";
Master.UserFeedBack.Text = message + error.Message;
}
if (!userUpdateError)
{
Master.UserFeedBack.Text = "Customer Updated Successfully.";
}
}
更新方法:
public void UpdateUser(string userName, string city, string state, string favorite, string leastFavorite, string date, int userID)
{
dbConnection.Open();
string sqlStmt = "UPDATE tblUser SET Username = @user, " +
"City = @city, " +
"State = @state, " +
"Favorite = @favorite, " +
"LeastFavorite @least, " +
"DateLast = @date " +
"WHERE (tblUser.UserID = @id)";
OleDbCommand dbCommand = new OleDbCommand(sqlStmt, dbConnection);
OleDbParameter param = new OleDbParameter("@user", userName);
dbCommand.Parameters.Add(param);
dbCommand.Parameters.Add(new OleDbParameter("@city", city));
dbCommand.Parameters.Add(new OleDbParameter("@state", state));
dbCommand.Parameters.Add(new OleDbParameter("@favorite", favorite));
dbCommand.Parameters.Add(new OleDbParameter("@least", leastFavorite));
dbCommand.Parameters.Add(new OleDbParameter("@date", date));
dbCommand.Parameters.Add(new OleDbParameter("@id", userID));
dbCommand.ExecuteNonQuery();
dbConnection.Close();
}
答案 0 :(得分:1)
将“ WHERE(tblUser.UserID = @id)”更改为“ WHERE UserID = @id”,因为您尝试更新同一张表,所以没有必要。
string sqlStmt = "UPDATE tblUser SET Username = @user, " +
"City = @city, " +
"State = @state, " +
"Favorite = @favorite, " +
"LeastFavorite @least, " +
"DateLast = @date " +
"WHERE UserID = @id";
答案 1 :(得分:0)
答案在Arulkumar's comment中:
=
在"LeastFavorite @least, " +,
中丢失,应该为"LeastFavorite = @least, " +