公共数据表的C#SQL查询

公共数据表的C#SQL查询,c#,.net,wpf,windows,multithreading,C#,.net,Wpf,Windows,Multithreading,我已经搜索了档案问题,但找不到合适的解决方案。如果真的存在的话,我很抱歉 我正在使用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 Ci

我已经搜索了档案问题,但找不到合适的解决方案。如果真的存在的话,我很抱歉

我正在使用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);
每次调用时,fill命令都会出错。错误消息如下:

System.ArgumentNullException:{”值不能为空。\r\n参数 名称:dataTable“}


有人能帮我停止此异常吗?

在使用
SqlDataAdapter
中的table变量之前,请尝试分配一个空表。差不多

 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);

希望这有助于…

您的命令在db manager中返回什么?您的
Published
列类型是什么?Published是一组日期,但这不是我的返回列,而是独特的城市列。太好了!。工作得很有魅力:)但我没有;(StackoverFlow真的需要开发它的投票功能。但是对于其他读者来说……这是我问题的正确答案。谢谢你,瓦内:)我可以知道为什么这个答案被否决了吗?如果你投了反对票,请把理由作为评论。。。