【发布时间】:2015-09-06 23:17:05
【问题描述】:
我正在尝试使用 SQL 存储过程返回表中的所有行。然后使用 C# 将结果存储在 DataTable 中。
在通过 EXEC 命令执行存储过程时,在 SQL 环境中得到了预期的结果。但是当值被存储在 DataTable 中时,只有几行显示错误,而其他行显示一些数据。
存储过程如下:
ALTER PROCEDURE procDDSDDAReg (@v_querytype VARCHAR(20), @v_Itemindex INT)
AS
BEGIN
IF @v_querytype = 'SELECT_REQUEST'
BEGIN
SELECT * FROM DDSInternetBankingDDADetails o
WHERE isnull(o.uploadstatus,'N') = 'N' AND o.InstructionCode='RQST';
END;
ELSE IF @v_querytype = 'UPDATE'
BEGIN
UPDATE DDSInternetBankingDDADetails SET uploadstatus ='Y' WHERE Itemindex=@v_Itemindex
END;
ELSE IF @v_querytype = 'UPDATE_ROLLBACK'
BEGIN
UPDATE DDSInternetBankingDDADetails SET uploadstatus ='N' WHERE Itemindex=@v_Itemindex
END;
END;
GO
DataTable 的快照是:
C# 代码的快照是:
虽然没有抛出错误。请告诉我可能的原因。
【问题讨论】:
-
您的数据库有一些限制,而您的 sql 表没有。可能是不应该存在的唯一约束或不可为空的列。
-
这是 SQL Server 吗?请标记使用的 dbms 产品!
-
是SqlDbx 3.60版(个人版)
-
@ZoharPeled 我没听懂你。请详细说明。
-
你的 c# DataTable 是如何创建的?
标签: c# sql stored-procedures datatable