【发布时间】:2016-12-02 09:41:31
【问题描述】:
问题标题可能看起来有点模糊。我将在这里解释它。
所以,我有两张桌子: 1) 事件 2) 联系方式
事件表有一个从联系人表引用的外键 (ContactID)。 因此,当我删除一个联系人时,我必须先删除使用正在删除的联系人 ID 的事件行,以避免任何冲突。
但我不想那样。实际上,我使用 ContactID 来获取 ContactName 和 ContactNumber,同时在网格视图中显示事件详细信息以及事件表中的其他列。
这就是我不想删除事件的原因,我只想要 ContactName 和 ContactNumber 的 Null 值。
我尝试在事件表中将 ContactID 设置为 NULL。代码:
string query0 = "Update Event SET ContactID=@contact where ContactID='" + cntID + "'";
SqlCommand cmd0 = new SqlCommand(query0, conn);
cmd0.Parameters.AddWithValue("contact", DBNull.Value);
conn.Open();
cmd0.ExecuteNonQuery();
conn.Close();
这将事件表中的 ContactID 设置为 NULL 就好了。但是,当我尝试在网格视图中获取事件信息并在两个表上应用连接时,我没有获得将 ContactId 设置为 NULL 的事件记录。 这是获取事件信息的查询:
SELECT Event.ID, Event.StartDate, Event.Title, Contact.Name, Contact.Cell, Event.EventType, Event.Confirmed, Event.Comments
FROM Event
INNER JOIN Contact ON Event.ContactID = Contact.ID
解决方法是什么?请帮助我并引导我朝着正确的方向前进。
【问题讨论】:
标签: c# asp.net sql-server