【问题标题】:C# SQL Row delete parent with child rowsC# SQL Row 删除带有子行的父级
【发布时间】:2013-10-26 13:14:01
【问题描述】:

我有一个程序,我将数据写入 datagridviews,当我关闭表单时,数据会保存到 SQL Server 数据库。但是当它有子行时,我在删除父行时遇到问题。我收到并发冲突异常。当我检查数据库时,我看到只删除了子行。

这是我创建 SQL Server 表的查询:

sql = "CREATE TABLE Auto("
                        + "VIN varchar(10) NOT NULL PRIMARY KEY,"
                        + "Make nvarchar(50),"
                        + "Model nvarchar(50),"
                        + "Year smallint);";

sql = "CREATE TABLE Repair("
                        + "ID int NOT NULL PRIMARY KEY,"
                        + "VIN varchar(10) NOT NULL,"
                        + "Description nvarchar(255),"
                        + "Cost float)"
                        + "ALTER TABLE Repair ADD FOREIGN KEY (VIN) REFERENCES Auto(VIN) ON DELETE CASCADE;";

我正在通过SqlDataAdapter 更新数据库。

【问题讨论】:

    标签: c# sql sql-server datagridview sqldataadapter


    【解决方案1】:

    它对我有用,这是小提琴

    SQL fiddle

    你有什么机会触发吗?

    【讨论】:

      【解决方案2】:

      我不明白你为什么使用 ALTER TABLE 试试这样的方法,它对我来说很好:

      CREATE TABLE Auto(
      VIN varchar(10) NOT NULL PRIMARY KEY,
      Make nvarchar(50),
      Model nvarchar(50),
      Year smallint
      );
      
      CREATE TABLE Repair(
      ID int NOT NULL PRIMARY KEY,
      VIN varchar(10) NOT NULL,
      Description nvarchar(255),
      Cost float,
      FOREIGN KEY (VIN) REFERENCES Auto(VIN) ON DELETE CASCADE)
      );
      

      删除示例:

      DELETE FROM Auto WHERE VIN = 'BMW';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-11
        相关资源
        最近更新 更多