我使用VB.Net和MySQL作爲數據庫,我是一個新手。我在使用MySQL中的外鍵時遇到了問題。在MySQL中,我創建了inq
表作爲其主表和inqcontact
表。這裏是我的MySQL代碼:VB.Net和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代碼返回NULL值在inqcontact
表number
外鍵。我的意思是,在inq
表中,number
字段自動遞增,所以沒有問題。但在inqcontact
表中,作爲外鍵的number
字段是NULL值。你能告訴我我提供的代碼有什麼問題嗎?我想,錯誤是從我的VB.Net插入數據。
所有字段都是** NULL **代碼。我嘗試使用_MySQL Command Line Client_插入我之前使用的代碼: 'INSERT INTO INQ VALUES(number,'SomeText','SomeText','SomeText');' 並且填充這四個字段。但是這個: 'INSERT INTO inqcontact VALUES(noinqcontact,'SomeText','Sometext',SomeText',number);' 第一到第四個字段都可以,但是最後一個(**數字**),它是外鍵,不是... 所以,我的VB.Net語法沒有錯。我認爲這是我的MySQL語法。 – aer
使用PDO +1。 – Johan