Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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# 编写sql存储过程以从表中删除数据?_C#_Sql Server 2008_Stored Procedures - Fatal编程技术网

C# 编写sql存储过程以从表中删除数据?

C# 编写sql存储过程以从表中删除数据?,c#,sql-server-2008,stored-procedures,C#,Sql Server 2008,Stored Procedures,我有一个简单的应用程序,它将数据存储到名为student table的sql server数据库表中。姓名、性别和registeredtimedatetime。在我的WPF窗口中,我有三个字段可将数据插入表中。现在,我希望有一个基于用户(datetimepicker)输入的delete按钮 如何从与用户给出的日期相比已有7天的表中删除数据 我希望有一个可以从c代码调用的存储过程。我可以尝试这样的操作,但从studenttable中选择*registereddate

我有一个简单的应用程序,它将数据存储到名为student table的sql server数据库表中。姓名、性别和registeredtimedatetime。在我的WPF窗口中,我有三个字段可将数据插入表中。现在,我希望有一个基于用户(datetimepicker)输入的delete按钮

如何从与用户给出的日期相比已有7天的表中删除数据


我希望有一个可以从c代码调用的存储过程。我可以尝试这样的操作,但从studenttable中选择*registereddate您可能需要使用以下函数:

DELETE StudentTable
WHERE DATEADD(day,-7,GetDate()) > registeredDate
确保先执行等效的选择,以确保删除所需内容:

SELECT * FROM StudentTable
WHERE DATEADD(day,-7,GetDate()) > registeredDate
您的存储过程如下所示:

CREATE PROCEDURE DeleteRecent AS
BEGIN
    DELETE StudentTable
    WHERE DATEADD(day,-7,GetDate()) > registeredDate
END
GO

我希望这有帮助

如果我正确地阅读了您的问题,您只需将SELECT*FROM语法替换为DELETE语法即可

然后将日期作为c中的存储过程参数传入

DELETE ST
--SELECT * 
FROM StudentTable ST
WHERE DATEADD(day,-7,GetDate()) > registeredDate 
这是一个小技巧,可以让你在第一次跑步前检查你将在delte Station影响的记录。只需从SElect on上运行以检查记录chosemn,那么您就知道在执行此操作之前,delte将影响正确的记录

CREATE PROC
(@date smalldatetime)
AS
BEGIN

DELETE studenttable 
WHERE registereddate < (@date - 7)

END
小贴士:

您希望避免在WHERE子句中的regsitereddate上执行任何函数,以便仍可使用索引。 @日期称为参数。也可以查看C函数中的参数。其他关键字有:sqlcommand、addwithvalue等。
**创建或替换过程删除任何ENO编号

开始

从EMP1中删除

其中EMP_ID=ENO

结束

召唤


执行DELETE_ANY1

如果这是作业,请将其标记为作业。+1我不小心删除了很多行,因为我忘了先选择它们。@Matthew PK,这就是为什么我喜欢查询的组合形式
DELETE ST
--SELECT * 
FROM StudentTable ST
WHERE DATEADD(day,-7,GetDate()) > registeredDate 
CREATE PROC
(@date smalldatetime)
AS
BEGIN

DELETE studenttable 
WHERE registereddate < (@date - 7)

END
-- =============================================
-- Author:      XXXX
-- Create date: xx-xx-xxxx
-- Description: Procedure for Deleting  From Table 
-- =============================================


CREATE PROCEDURE [dbo].[SP_Employee_Delete]
(
@EmpCode bigint=null,
@Msg nvarchar(MAX)=null OUTPUT
)
AS
BEGIN TRY

DELETE FROM tbl_Employees
WHERE EmpCode=@EmpCode

SET @Msg='Employee Deleted Successfully.'

END TRY
BEGIN CATCH
SET @Msg=ERROR_MESSAGE()
END CATCH

GO