这是我的代码,我不知道为什么在我的visual studio 2013中出现此错误,并且我的数据库是MySQL Query Browser:
“其他信息:错误[HY000] [MySQL] [ODBC 3.51驱动程序] [mysqld-5.1.34-community]第1行的“用户ID”列的数据被截断了”
如果a =“ New”,则
Dim sqlstring作为字符串
sqlstring =“插入到用户(用户名,用户ID,用户类型,备注)中的值TextBox4.Text和“')”
cmd =新的Odbc.OdbcCommand(sqlstring,cnn)
cmd.ExecuteNonQuery()
重启()
disable()
btn3()
万一
最佳答案
这是因为传递的字符的总长度超过了列userid
定义的长度。除此之外,mysql有自己的托管提供程序,称为MySqlClient
,这是您应该使用的。
良好做法编程的一种更好的方法是使查询参数化。以下示例至少是您的良好起点:
Dim connectionString As String = "..your connection string here..."
Using SQLConnection As New MySqlConnection(connectionString)
Using sqlCommand As New MySqlCommand()
sqlCommand.CommandText = "INSERT into users(username, userid, usertype, remarks) VALUES (@username, @userid, @usertype, @remarks)"
sqlCommand.Connection = SQLConnection
sqlCommand.CommandType = CommandType.Text
sqlCommand.Parameters.AddWithValue("@username", TextBox1.Text)
sqlCommand.Parameters.AddWithValue("@userid", TextBox2.Text)
sqlCommand.Parameters.AddWithValue("@usertype", ComboBox1.Text)
sqlCommand.Parameters.AddWithValue("@remarks", TextBox4.Text)
SQLConnection.Open()
sqlCommand.ExecuteNonQuery()
End Using
End Using