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();*
上面的代码可以工作,但是看起来不太好。随机数和添加随机数由我自己的代码。没有更好的主意吗?谢谢大家的建议。至少对我有用。
先写Settings记录,再写Device记录
您确定一个设备只有一个设置条目吗?
如果你在同一个设备上有多个设置项,你的db结构将不支持你。您应该从设备表中删除SettingId列,并在设置表中添加DeviceID列。
现在您可以先将记录插入到Device表中,然后将记录添加到Setting表中,其中Device id的值作为Device表中最近记录的id。
如果一个SettingId可以与一个或多个设备相关联,那么您的模式将支持它。但是在这种情况下,你需要先在设置表中插入你的记录,然后使用设置id值在设备表中插入记录。