首页 / C# / C#-MySQL语法错误ASP.NET
C#-MySQL语法错误ASP.NET
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-MySQL语法错误ASP.NET,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1698字,纯文字阅读大概需要3分钟。
内容图文
美好的一天!
我正在尝试找出我遇到的错误.这是错误:
这是我的代码:
protected void accountGridView_RowEditing(object sender, GridViewEditEventArgs e)
{
accountGridView.EditIndex = e.NewEditIndex;
BindData();
}
protected void accountGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int user_id = int.Parse(accountGridView.DataKeys[e.RowIndex].Value.ToString());
TextBox txtUsername = (TextBox)accountGridView.Rows[e.RowIndex].FindControl("txtUsername");
UpdateUser(user_id, txtUsername.Text);
accountGridView.EditIndex = -1;
BindData();
}
private void UpdateUser(int user_id, string username)
{
GlobalVars cn = new GlobalVars();
MySqlConnection connection = cn.connectDB();
connection.Open();
string query = "UPDATE user SET username = '" + username + " WHERE user_id = " + user_id + "";
MySqlCommand com = new MySqlCommand(query, connection);
com.ExecuteNonQuery();
connection.Close();
}
我无法正常工作.我在这里想念什么吗?
任何帮助将非常感激.
解决方法:
该错误消息表明您的查询中存在语法错误,因此其他部分(连接)运行正常.现在考虑查询:-如果调试程序并观看查询,您会发现它看起来像:
UPDATE user SET username = 'asd WHERE user_id= usr_123
因此,这里的错误是,您在asd之后发现了一个’,需要提供一对’以指定user_id(如果它是字符串),因此查询可能如下所示:
string query = "UPDATE user SET username = '" + username + "' WHERE user_id = '" + user_id + "'";
但是我强烈建议您为此使用参数化查询,以避免injection.参数化查询将类似于:
string query = "UPDATE user SET username = @username WHERE user_id = @user_id";
MySqlCommand com = new MySqlCommand(query, connection);
com.Parameters.Add("@username", MySqlDbType.VarChar).Value = username;
com.Parameters.Add("@user_id", MySqlDbType.VarChar).Value = user_id;
// execute query here
内容总结
以上是互联网集市为您收集整理的C#-MySQL语法错误ASP.NET全部内容,希望文章能够帮你解决C#-MySQL语法错误ASP.NET所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。