在更新和删除级联时创建

本文关键字:创建 级联 删除 更新 | 更新日期: 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。