Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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# ASP.NET调用DataAdapter填充会创建重复的条目_C#_Asp.net_Sql Server - Fatal编程技术网

C# ASP.NET调用DataAdapter填充会创建重复的条目

C# ASP.NET调用DataAdapter填充会创建重复的条目,c#,asp.net,sql-server,C#,Asp.net,Sql Server,这种奇怪的行为始于今天: 代码非常简单:(C#4.5) bool connopend=OpenConnectiontoDB() 如果直接运行存储过程spGetCountries(以DB为单位),则会得到单个值: ALTER PROCEDURE [dbo].[spGetCounties] AS BEGIN SET NOCOUNT ON; SELECT c.tblCountyName,c.tblCountyID FROM tblCounty c ORD

这种奇怪的行为始于今天:

代码非常简单:(C#4.5)

bool connopend=OpenConnectiontoDB()

如果直接运行存储过程spGetCountries(以DB为单位),则会得到单个值:

ALTER PROCEDURE [dbo].[spGetCounties]

AS
BEGIN   
    SET NOCOUNT ON;
    SELECT c.tblCountyName,c.tblCountyID
    FROM
    tblCounty c
    ORDER BY 
    c.tblCountyName asc
END
tblCounty不包含任何重复值

如果我运行C#代码,我会查看我看到的DSC的值

A
A
B
B
C
C   
...
我在page_load事件中调用存储过程

  DataSet dsCounties = new DataSet();
                dsCounties = busLayer.GetCounties();
但当我查看数据库层代码时,这并不重要,dscountry的值为null,并且只要da.Fill(dscountries)运行,我就会在dscountries中看到重复的值

============================================

更新: 在浪费了2个小时的时间并试图精简代码并将其与以前的版本进行比较后,我意识到这种行为是由于其他人犯了一个简单但愚蠢的错误造成的

1:一个新开发人员更改了Dev-side配置文件以指向生产数据库

2:我们光荣的DB管理员将每行复制两次到生产中!!!我无法想象这是怎么发生的,忘记了将县ID作为主键


很抱歉,如果这个问题浪费了您的时间。

在页面加载方法中,它将在每次加载页面时添加数据。 您需要添加

if(!PostBack)
{
     DataSet dsCounties = new DataSet();
     dsCounties = busLayer.GetCounties();
}

如果它是回发的,则表示它以前已加载。如果没有,则需要对数据集进行初始化。

好,我更新问题,我在内部调用它!发回。如果你看一下我的问题,我说我看一下数据层C代码本身,我看到dscounty为null,调用sp后它包含重复的值。这与页面无关这都是C#这不是我的代码,请参见我的编辑。我感谢你花时间帮助+1。我会接受你的回答,因为这是最有可能发生的情况。
if(!PostBack)
{
     DataSet dsCounties = new DataSet();
     dsCounties = busLayer.GetCounties();
}