Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这是一个确切的问题吗?_C#_Sql_Winforms - Fatal编程技术网

C# 这是一个确切的问题吗?

C# 这是一个确切的问题吗?,c#,sql,winforms,C#,Sql,Winforms,我有两张桌子 Inbox(id,accountid,emailfrom,emailsubject,emailbody,emaildate,attachment) Trash(as above) 当用户想要从inboxDataGridView中删除一行时,首先将该行复制到垃圾桶表中。我正在尝试此查询以首先复制行: string query = "INSERT INTO Trash(inboxid, accountid, emailfrom, subject, emailbody,emaildat

我有两张桌子

Inbox(id,accountid,emailfrom,emailsubject,emailbody,emaildate,attachment)
Trash(as above)
当用户想要从
inboxDataGridView
中删除一行时,首先将该行复制到
垃圾桶
表中。我正在尝试此查询以首先复制行:

string query = "INSERT INTO Trash(inboxid, accountid, emailfrom, subject, emailbody,emaildate,attachment) SELECT inboxid, accountid, emailfrom, subject, emailbody,emaildate,attachment FROM Inbox WHERE(inboxid = " + accountinfo.PEmailId + ")";(where accountinfo.PEmailId = selectedRow value
但是这个查询给了我一个错误


请指导我如何进行复制和删除。

实际上,有一种简单而更好的方法可以完成您想要的内容,那就是在删除时写入触发器。你的数据库是什么?SQL Server

我假设您的数据库是Sql Server。。请在您的数据库中尝试以下触发器



这应该可以:

插入:

INSERT INTO Trash(id, accountid, emailfrom, subject, emailbody,
   emaildate,attachment)
SELECT id, accountid, emailfrom, subject, emailbody,emaildate,attachment 
FROM Inbox 
WHERE id = @id
删除:

DELETE Inbox
WHERE id = @id
您需要执行这些语句,或者作为两个单独的命令来执行,具体取决于您是否要在语句之间执行其他操作。@id参数应作为命令参数提供,以便执行

如果希望解决方案的一部分位于数据库端,可以将其创建为存储过程或创建触发器。在使用触发器方法的情况下,Delete语句足以从程序中执行

DELETE Inbox
WHERE id = @id