【问题标题】:C# SQL Query for public DataTable公共数据表的 C# SQL 查询
【发布时间】:2015-05-19 10:13:32
【问题描述】:

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

我正在使用 Visual Studio 2013、.NET Runtime 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 : {"值不能为空。\r\n参数 名称:数据表"}

谁能帮我阻止这个异常?

【问题讨论】:

  • 你的命令在你的数据库管理器中返回什么?您的Published 列类型是什么?
  • Published 是一组日期,但这不是我的返回专栏,它是独特的城市专栏。

标签: c# .net wpf windows multithreading


【解决方案1】:

在使用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 真的需要处理它的投票功能。但只是为了其他读者....这是我问题的正确答案。谢谢你,瓦内特 :)
  • 我可以知道为什么这个答案被否决了吗?如果您投反对票,请将原因作为评论...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多