gpt4 book ai didi

mysql - VB.Net 和 MySQL

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:03 25 4
gpt4 key购买 nike

我正在使用 VB.Net 和 MySQL 作为数据库,我是新手。我在 MySQL 中使用外键时遇到问题。在 MySQL 中,我创建了 inq 表作为其主表和 inqcontact 表。这是我的 MySQL 代码:

CREATE TABLE inq(
number INT NOT NULL AUTO_INCREMENT,
lastname VARCHAR(20),
firstname VARCHAR(20),
middlename VARCHAR(20),
PRIMARY KEY(number));

CREATE TABLE inqcontact(
noinqcontact INT NOT NULL AUTO_INCREMENT,
mobile VARCHAR(20),
telephone VARCHAR(20),
emailadd VARCHAR(20),
number INT,
PRIMARY KEY(noinqcontact),
FOREIGN KEY(number) REFERENCES inq(number));

这是我的 VB.Net 代码:

CommInq1 = New MySqlCommand("INSERT INTO inq VALUES (number,'" & txtLastName.Text & "','" & txtFirstName.Text & "','" & txtMiddleName.Text & "')", ConnInq)
ConnInq.Open()
CommInq1.ExecuteNonQuery()

CommInq2 = New MySqlCommand("INSERT INTO inqcontact VALUES (noinqcontact,'" & txtMobileNo.Text & "','" & txtTelephoneNo.Text & "','" & txtEmailAdd.Text & "',number )", ConnInq)
CommInq2.ExecuteNonQuery()
ConnInq.Close()

MessageBox.Show("Saved!", "")

我的 VB.Net 代码向 inqcontact 表中的 number 外键返回 NULL 值。我的意思是,在 inq 表中,number 字段会自动递增,因此没有问题。但是在inqcontact表中,作为外键的number字段是NULL值。你能告诉我我提供的代码有什么问题吗?我想,错误在于从我的 VB.Net 插入数据。

最佳答案

试试这个,

CommInq1 = New MySqlCommand("INSERT INTO inq (lastname,firstname,middlename)
VALUES (@lastname,@firstname,@middlename)",ConnInq)

CommInq1.Parameters.Add("@lastname",MySql.Data.MySqlClient.MySqlDbType.VarChar,20).Value=txtLastName.Text
CommInq1.Parameters.Add("@firstname",MySql.Data.MySqlClient.MySqlDbType.VarChar,20).Value=txtFirstName.Text
CommInq1.Parameters.Add("@middlename",MySql.Data.MySqlClient.MySqlDbType.VarChar,20).Value=txtMiddleName.Text

ConnInq.Open()
CommInq1.ExecuteNonQuery()

CommInq2 = New MySqlCommand("INSERT INTO inqcontact (mobile,telephone,emailadd,number)
VALUES (@mobile,@telephone,@emailadd,@number)",ConnInq)

CommInq2.Parameters.Add("@mobile",MySql.Data.MySqlClient.MySqlDbType.VarChar,20).Value=txtMobileNo.Text
CommInq2.Parameters.Add("@telephone",MySql.Data.MySqlClient.MySqlDbType.VarChar,20).Value=txtTelephoneNo.Text
CommInq2.Parameters.Add("@emailadde",MySql.Data.MySqlClient.MySqlDbType.VarChar,20).Value=txtEmailAdd.Text
CommInq2.Parameters.Add("@number",MySql.Data.MySqlClient.MySqlDbType.Int32)
.Value=CommInq1.LastInsertedId
' or use select last_insert_id() to get the last id

CommInq2.ExecuteNonQuery()
ConnInq.Close()

关于mysql - VB.Net 和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830991/

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