gpt4 book ai didi

mysql - 由于空错误 [HY000] [MySQL][ODBC 3.51,插入失败

转载 作者:行者123 更新时间:2023-11-29 23:07:10 25 4
gpt4 key购买 nike

我的问题:

这个查询做错了什么,它让我很困惑,任何人都可以建议我解决方案:我使用查询为:

Dim constr As String = "Dsn=check;database=db;description=check;option=0;port=0;server=localhost;uid=root"
Dim con As New OdbcConnection(constr)
Dim mysql As String = "insert into parameter(col3,col1,col2) values(@val3,@val1,@val2)"
Dim cmd As New OdbcCommand
With cmd
.CommandType = CommandType.Text
.CommandText = mysql
.Connection = con
.Parameters.Add(New OdbcParameter("@val1", "C005"))
.Parameters.Add(New OdbcParameter("@val2", "C006"))
.Parameters.Add(New OdbcParameter("@val3", 55))
End With
con.Open()
MsgBox(cmd.ExecuteNonQuery()) '<--- this line giving error as given below
con.Close()

ERROR [HY000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community-nt-log]Column 'col3' cannot be null

但我正在向此参数添加值.Parameters.Add(New OdbcParameter("@val3", 55)) 那么为什么会发生此错误?

col3 是我的表的主键。因此,如果我为主键字段设置自动增量,然后为 col1col2 赋予值,那么它会将 NULL 值插入到表中。

如果我像下面这样使用:将工作正常使用参数化查询时出现问题,这是我第一次使用参数化查询

Dim mysql As String = "insert into parameter(col3,col1,col2) values(55,'C005','C006')"
Dim cmd As New OdbcCommand
With cmd
.CommandType = CommandType.Text
.CommandText = mysql
.Connection = con
End With
con.Open()
MsgBox(cmd.ExecuteNonQuery())
con.Close

我使用odbc驱动程序3.5Visual Studio 2010

enter image description here

正在使用的表结构:

CREATE TABLE  `db`.`parameter` (
`col3` int(11) NOT NULL default '0',
`col1` text,
`col2` text,
PRIMARY KEY (`col3`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

最佳答案

您的表定义是错误的。像这样定义你的主 auto_increment 键

CREATE TABLE  `parameter` (
`col3` int NOT NULL primary key auto_increment,
`col1` text,
`col2` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

然后您可以使用此查询

insert into parameter(col1,col2) values(@val1,@val2)

主键将由数据库生成。

SQLFiddle demo

还使用?作为参数占位符

insert into parameter(col1,col2) values(?,?)

关于mysql - 由于空错误 [HY000] [MySQL][ODBC 3.51,插入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com