C#公共DataTable的SQL查询

3

我搜索了存档中的问题,但找不到合适的解决方案。如果实际上存在一个解决方案,那么我很抱歉。

我使用的是Visual Studio 2013,.NET运行时4.5,MS-SQL 2008。

我的代码很简单:

public static class Global
{
    public static DataTable CityTable;
}

为了填充我的数据表,我调用:

SqlCommand SC1 = new SqlComman("SELECT DISTINCT City FROM Final WHERE City !='' AND City IS NOT null AND Published LIKE '%/%/" + DateTime.Now.ToString("yyyy") + "'", conn);

SqlDataAdapter SDA1 = new SqlDataAdapter(SC1);

SDA1.Fill(Golbal.CityTable);

每次调用时,我都会在填充命令上出现错误。错误消息如下:

System.ArgumentNullException : {"Value cannot be null.\r\nParameter name: dataTable"}

有人能帮我停止这个异常吗?

你的数据库管理工具中返回什么命令?你的“Published”列是什么类型? - Soner Gönül
发布的是一组日期,但那不是我的返回列,而是唯一的城市列。 - user3244026
1个回答

2

在使用SqlDataAdapter中的表变量之前,请尝试分配一个空表。可以像这样做:

 SqlCommand SC1 = new SqlCommand("select distinct City from Final " +
                                 "where City!='' and city is not null and " +
                                 "Published like'%/%/" + 
                                  DateTime.Now.ToString("yyyy") + "'", conn);
 SqlDataAdapter SDA1 = new SqlDataAdapter(SC1);
 Global.CityTable = new DataTable();
 SDA1.Fill(Global.CityTable);

希望这能有所帮助...

太完美了!像魔法一样顺利 :) 但我没有15个声望来投票 :( StackoverFlow真的需要改进它的投票功能。但是为了其他读者...这是我的问题的正确答案。谢谢Vanet :) - user3244026
请问为什么这个答案被踩了?如果您要踩,请在评论中说明原因... - Vanest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接