SQL CE 3.5插入多个表

本文关键字:插入 CE SQL | 更新日期: 2023-09-27 18:19:18

我在SQL CE工作,我有以下表。

<<p> 设备/em>
  • DevID - Primary, bigint, autoincrement
  • Name - nvarchar(100)
  • 电压-实际
  • setingid - bigint, FK_SettingTable

另一个表:

<<p> 设置/em>
  • SettingID - Primary, bigint
  • setingstr - nvarchar(200)

第一个表是设备表,另一个是设置表。设备表和设置表有外键关系。

如何插入值SQL CE?我的Insert语句看起来像

"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();*
上面的代码可以工作,但是看起来不太好。随机数和添加随机数由我自己的代码。没有更好的主意吗?

谢谢大家的建议。至少对我有用。

SQL CE 3.5插入多个表

先写Settings记录,再写Device记录

您确定一个设备只有一个设置条目吗?

如果你在同一个设备上有多个设置项,你的db结构将不支持你。您应该从设备表中删除SettingId列,并在设置表中添加DeviceID列。

现在您可以先将记录插入到Device表中,然后将记录添加到Setting表中,其中Device id的值作为Device表中最近记录的id。

如果一个SettingId可以与一个或多个设备相关联,那么您的模式将支持它。但是在这种情况下,你需要先在设置表中插入你的记录,然后使用设置id值在设备表中插入记录。