私はデータベースとしてVB.NetとMySQLを使用しています。私は初心者です。私はMySQLの外来キーを使用して問題があります。 MySQLでは、私はinq
テーブルをプライマリテーブルとして作成し、inqcontact
テーブルを作成しました。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コードがinqcontact
表でnumber
外部キーにNULL値を返しますが、ここに私のMySQLのコードです。つまり、inq
の表には、number
フィールドが自動的に増分されるため、問題はありません。しかし、inqcontact
テーブルでは、外部キーであるnumber
フィールドはNULL値です。私が提供したコードに何が間違っているか教えてください。私は、エラーは私のVB.Netからのデータの挿入にあると思う。
すべてのフィールドは**あなたのコードで** NULL **です。私は_MySQLコマンドラインClient_を使用してあなたの前に使用したコードで挿入しようとしました: 'INSERT INTO inq VALUES(数字、 'SomeText'、 'SomeText'、 'SomeText'); ' そしてそれは4つのフィールドを満たします。しかし、この1つは: 'INSERT INTOの連絡先VALUE(noinqcontact、 'SomeText'、 'Sometext'、SomeText '、number);' 第1から第4のフィールドはOKですが、最後の(**数値**)外のキーです、でした... 私のVB.Net構文に間違いはありません。私はそれが私のMySQL構文であると思う。 – aer
+1 PDOを使用します。 – Johan