私はSQL CEで作業しており、以下の表があります。SQL CE 3.5複数のテーブルに挿入
デバイス
- DEVID - プライマリ、BIGINT、自動インクリメント
- 名 - データ型はnvarchar(100)
- 電圧 -
- 本当SettingID - BIGINT、FK_SettingTable
別表:
の設定
- SettingID - プライマリ、BIGINT
- SettingStr - NVARCHAR(200)
したがって、最初の表は、デバイステーブルであり、別のテーブルを設定しています。デバイステーブルと設定テーブルには、外部キーの関係があります。
どのように値のSQL CEを挿入できますか? マイ挿入ステートメントは、だから私は、デバイステーブルに値を挿入することができます
"INSERT INTO DEVICE(Name,Voltage) VALUES('xyz',120)".
のように見えます。しかし、どのようにして両方のテーブルに値を挿入できますか?
データベース設計を変更する必要はありますか?
更新:上記のコード
*string connstring = "Data Source=C://Documents//DataBase.sdf";
SqlCeConnection cnn = new SqlCeConnection(connstring);
if (cnn.State == ConnectionState.Closed) cnn.Open();
Random rm = new Random();
int id = rm.Next();
string str = "INSERT INTO Settings (SettingID,Settings) VALUES(" + id + ",'" + textBox3.Text + "')";
SqlCeCommand command = new SqlCeCommand(str, cnn);
command.ExecuteNonQuery();
str = "INSERT INTO Device (Mfr,Model,SettingID) VALUES('" + textBox1.Text + "','" + textBox2.Text + "'," + id + ")";
command.CommandText = str;
command.ExecuteNonQuery();*
は動作しますが、それは良く見えるdoesntの。乱数と乱数を自分のコードで追加します。 他のより良いアイデアはありませんか?
ご意見ありがとうございます。少なくともそれは私のために働く。
設定テーブルにどのような価値を入れようとしていますか? –
@ Jason。 SettingStrはservice | ON、Current | 55、comments | Noのような値のコンマ区切りのペアです。設定IDは、テーブルを設定するための主キーです。 –