-1

Dim datetimepicker1 As String = Format(System.DateTime.Now, "yyyy-MM-dd HH:mm:ss")

    Try
        Dim cmd As MySqlCommand = New MySqlCommand
        With cmd
            .CommandText = "INSERT INTO tbl_product (`prod_name`,`prod_desc`, `cat_id`, `uom_id`,`uom_num`, `dept_id`, `brand_id`, `size_id`, `type_id`, `remarks`, `date`) values (@prod_name,@prod_desc,@cat_id,@uom_id,@uom_num,@dept_id,@brand_id,@size_id,@type_id,@remarks,@date)"
            .Connection = SQLConnection
            .CommandType = CommandType.Text
            .Parameters.AddWithValue("@prod_name", TextBox1.Text)
            .Parameters.AddWithValue("@prod_desc", TextBox2.Text)
            .Parameters.AddWithValue("@cat_id", ComboBox1.Text)
            .Parameters.AddWithValue("@uom_id", ComboBox2.Text)
            .Parameters.AddWithValue("@uom_num", TextBox3.Text)
            .Parameters.AddWithValue("@dept_id", ComboBox3.Text)
            .Parameters.AddWithValue("@brand_id", ComboBox4.Text)
            .Parameters.AddWithValue("@size_id", ComboBox5.Text)
            .Parameters.AddWithValue("@type_id", ComboBox6.Text)
            .Parameters.AddWithValue("@remarks", RichTextBox1.Text)
            .Parameters.AddWithValue("@date", datetimepicker1)
            .ExecuteNonQuery()

        End With

            MsgBox(" SIze Successfully added")
        Catch ex As Exception
            MsgBox(ex.Message.ToString)



        End Try

子行の外部キー制約を追加または更新できませんが失敗しますこれは私のエラーです

これは私のテーブル構造です* * ** * ** * **** *8


--

-- テーブルのテーブル構造tbl_brand

CREATE TABLE IF NOT EXISTS tbl_brand( brand_idint(11) NOT NULL AUTO_INCREMENT, brand_namevarchar(200) NOT NULL, brand_descvarchar(200) DEFAULT NULL, PRIMARY KEY ( brand_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--

-- テーブルのデータをダンプしていますtbl_brand

INSERT INTO tbl_brand( brand_id, brand_name, brand_desc) 値 (1, 'Nike', 'Nike Air'), (2, 'Crocs', 'Class A'), (3, 'SafeGuard', 'SafeGuard');


--

-- テーブルのテーブル構造tbl_category

CREATE TABLE IF NOT EXISTS tbl_category( cat_idint(11) NOT NULL AUTO_INCREMENT, cat_namevarchar(200) NOT NULL, cat_descvarchar(200) NOT NULL, PRIMARY KEY ( cat_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--

-- テーブルのデータをダンプしていますtbl_category

INSERT INTO tbl_category( cat_id, cat_name, cat_desc) VALUES (1, 'バスソープ', 'バスソープ'), (2, '洗剤', '洗剤');


--

-- テーブルのテーブル構造tbl_dept

CREATE TABLE IF NOT EXISTS tbl_dept( dept_idint(11) NOT NULL AUTO_INCREMENT, dept_namevarchar(200) NOT NULL, dept_descvarchar(200) NOT NULL, PRIMARY KEY ( dept_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--

-- テーブルのデータをダンプしていますtbl_dept

INSERT INTO tbl_dept( dept_id, dept_name, dept_desc) VALUES (1, '靴', '靴'), (2, '石鹸', '石鹸');


--

-- テーブルのテーブル構造tbl_product

CREATE TABLE IF NOT EXISTS tbl_product( prod_idint(11) NOT NULL AUTO_INCREMENT, prod_namevarchar(200) NOT NULL, prod_descvarchar(200) DEFAULT NULL, cat_idint(11) NOT NULL, dept_idint(11) NOT NULL, brand_idint(11) NOT NULL, type_idint (11) NOT NULL, uom_idint(11) NOT NULL, size_idint(11) NOT NULL, datedatetime NOT NULL, remarksvarchar(200) DEFAULT NULL, uom_numint(60) DEFAULT NULL, PRIMARY KEY ( prod_id), KEY tbl_product_ibfk_9( type_id), KEY tbl_product_ibfk_10( uom_id) 、キーtbl_product_ibfk_11( size_id)、キーtbl_product_ibfk_12( dept_id)、キーtbl_product_ibfk_13( cat_id)、キーtbl_product_ibfk_14( brand_id) ); ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


--

-- テーブルのテーブル構造tbl_size

CREATE TABLE IF NOT EXISTS tbl_size( size_idint(11) NOT NULL AUTO_INCREMENT, size_namevarchar(100) NOT NULL, PRIMARY KEY ( size_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--

-- テーブルのデータをダンプしていますtbl_size

INSERT INTO tbl_size( size_id, size_name) VALUES (1, 'Small(S) '), (2, 'Medium(M) '), (3, 'Large(L) ');


--

-- テーブルのテーブル構造tbl_type

CREATE TABLE IF NOT EXISTS tbl_type( type_idint(11) NOT NULL AUTO_INCREMENT, type_namevarchar(200) NOT NULL, PRIMARY KEY ( type_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--

-- テーブルのデータをダンプしていますtbl_type

INSERT INTO tbl_type( type_id, type_name) VALUES (1, 'バスケットボールシューズ'), (2, 'ジャージショーツ'), (3, 'ランニングシューズ'), (8, 'バスソープ');


--

-- テーブルのテーブル構造tbl_uom

CREATE TABLE IF NOT EXISTS tbl_uom( uom_idint(11) NOT NULL AUTO_INCREMENT, uom_namevarchar(200) NOT NULL, PRIMARY KEY ( uom_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--

-- テーブルのデータをダンプしていますtbl_uom

INSERT INTO tbl_uom( uom_id, uom_name) VALUES (1, 'キログラム(kg) '), (2, 'グラム(g) '), (3, 'ミリグラム(Mg) '), (4, 'リットル(L) '), (5, 'ミリリットル(ml) '), (6, 'ピース(個) '), (7, 'フィート(ft) ');


--

-- テーブルのテーブル構造tbl_user

CREATE TABLE IF NOT EXISTS tbl_user( user_idint(11) NOT NULL AUTO_INCREMENT, user_codevarchar(200) DEFAULT NULL, user_passwordvarchar(200) DEFAULT NULL, user_namevarchar(200) DEFAULT NULL, user_levelint(1) DEFAULT NULL, datetimedatetime NOT NULL, com_codevarchar(11) NOT NULL, PRIMARY KEY ( user_id), UNIQUE KEY user_code( user_code) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

--

-- テーブルのデータをダンプしていますtbl_user

INSERT INTO tbl_user( user_id, user_code, user_password, user_name, user_level, ) VALUES (1 datetime, com_code'1024', '1024', 'Vincent Dematera', 3, '2012-01-10 18:18:33', '001'), (7, '14', '14', 'Megan Bueno', 1, '2012-10-30 21:56:14', '002'), (8, '13', '13', '匿名', 1, '2012-10-20 21:51:00', '002'), (9, '9', '9', 'ブーム', 1, '0000-00-00 00:00:00', '003 ');

--

-- ダンプされたテーブルの制約

--

-- テーブルの制約tbl_product

他の机tbl_product

制約tbl_product_ibfk_9外部キー ( type_id) 参照を追加tbl_type( type_id)、制約tbl_product_ibfk_10外部キー ( uom_id) 参照を追加tbl_uom( uom_id)、制約tbl_product_ibfk_11外部キー ( size_id) 参照を追加tbl_size( )、制約外部キー ( ) 参照を追加( )、size_id制約tbl_product_ibfk_12外部キー ( )dept_id参照を追加( )、制約外部キー ( ) 参照を追加( )、制約外部キー ( ) 参照を追加( )、制約外部キー ( ) 参照を追加( )、制約を追加tbl_deptdept_idtbl_product_ibfk_13cat_idtbl_categorycat_idtbl_product_ibfk_14brand_idtbl_brandbrand_idtbl_product_ibfk_2type_idtbl_typetype_idtbl_product_ibfk_3uom_idtbl_uomuom_idtbl_product_ibfk_4外部キー ( size_id) 参照tbl_size( size_id)、制約tbl_product_ibfk_5外部キー ( dept_id) 参照tbl_dept( dept_id) を追加、制約外部キー ( ) 参照( ) を追加、制約外部キーtbl_product_ibfk_6( )cat_id参照tbl_category( cat_id) を追加。SET FOREIGN_KEY_CHECKS=1;tbl_product_ibfk_7brand_idtbl_brandbrand_id

4

1 に答える 1

0

テーブル プロダクトに相当数の外部キー制約があります。たとえば、製品テーブルに入力する「size_id」は、テーブル サイズの「size_id」に対応する必要があります。

vb.net プログラムが伝えていることは、テーブル product に入力している id 値の 1 つが対応するテーブルに存在しないということです。私の最善の推測は、あなたの id 値 (つまりsize_iduom_id、 など) の 1 つが空、空白、またはゼロであるということです。

いくつかのオプションがあります。次のことができます。

  • 必要に応じて、テーブルの外部キーをオフにしますSET foreign_key_checks = 0;
  • 外部キーを完全に削除できます
  • 値を挿入しようとする前に、コードを修正して外部キーに準拠していることを確認できます
于 2012-11-06T16:02:32.267 に答える