在更新和删除级联时创建
本文关键字:创建 级联 删除 更新 | 更新日期: 2023-09-27 18:21:30
我有一个要删除级联的查询,这里是查询
create table satuan_type
(
id int identity(1,1),
satuan_id int(200),
type_id int,
primary key(id),
foreign key(satuan_id) references satuan(id) on update cascade on delete cascade
);
问题是,如何使用c创建/添加、删除和更新级联?。因此,在这种方法中,查询自动运行/crete
Dictionary<String, String> dic = new Dictionary<string, string>();
dic.Add("id", "INT PRIMARY KEY IDENTITY");
dic.Add("satuan_id", "INT");
dic.Add("type_id", "INT");
cDatabaseSQLServer.CreateTables("satuan_type", dic);
public int CreateTables(String tableName, Dictionary<String, String> data)
{
switch (sqlType)
{
case DATABASE_SQL_TYPE.DATABASE_SQL_TYPE_SQLITE:
return cSQLite.CreateTables(tableName, data);
case DATABASE_SQL_TYPE.DATABASE_SQL_TYPE_MSSQL:
return cSQL.CreateTables(tableName, data);
}
return 0;
}
public int CreateTables(String tableName, Dictionary<String, String> data)
{
string s = "CREATE TABLE " + tableName + " (";
bool first = true;
foreach (KeyValuePair<String, String> val in data)
{
if (first)
{
first = false;
}
else
{
s = s + ",";
}
string s1;
s1 = String.Format("{0} {1}", val.Key, val.Value);
s = s + s1;
}
s = s + ")";
return this.ExecuteNonQuery(s);
}
我认为您需要为CreateTables方法添加逻辑。最好你添加更多的参数,你可以在其中输入任何你想要约束的键。因为从我现在读到的内容来看,你根本没有创建任何约束。这可以通过迭代您已经使用过的相同逻辑来实现,但分别用于主键和外键——最好使用布尔变量标志来标记它们是否应该级联。
不过,我建议你按照MSI的建议,使用ORM。