这是我的代码,我不知道为什么在我的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

09-28 05:39