首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlDataAdapter.Fill( DataTable )未填充DataTable

SqlDataAdapter.Fill( DataTable )未填充DataTable
EN

Stack Overflow用户
提问于 2013-06-07 21:36:28
回答 1查看 30K关注 0票数 2

我目前正在尝试从一个用C#编写的WPF应用程序的数据库中检索记录。我正在使用SQL数据读取器,它看起来连接正常,但下面给出了一个NullReferenceException:

代码语言:javascript
复制
        if (isString == true)
        {
            SqlDataAdapter adapter = new SqlDataAdapter("SELECT PartNumber FROM LoanerItems", loanersConnection);
            DataTable datatable = new DataTable();
            adapter.Fill(datatable);

            for (int i = 0; i < datatable.Rows.Count - 1; i ++)
            {
                passBackRecords[i] = datatable.Rows[i].ToString();
            }
        }

同样,看起来我正在连接到数据库,但是如果我通过调试器运行,datatable似乎没有填满。

我的连接字符串,以防可能有帮助:

代码语言:javascript
复制
        SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
        scsb.DataSource = "LLOYD2\\";
        scsb.InitialCatalog = "LoanersTest";
        scsb.IntegratedSecurity = true;
        scsb.ConnectTimeout = 30;

我目前使用的是包含两条记录的测试数据库,而不是最终的数据库。我已经尝试使用Transact-SQL编辑器,记录显示得很好。

*编辑:

初始化passBackRecords后,以下代码开始抛出ArguementOutOfRange异常:

代码语言:javascript
复制
            SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM LoanerItems", loanersConnection);
            DataTable datatable = new DataTable();
            adapter.Fill(datatable);
            for (int i = 0; i < datatable.Rows.Count - 1; i++)
            {
                passBackRecords[i] = datatable.Rows[i]["BCPartNumber"].toString;
            }

我都试过了:

代码语言:javascript
复制
for (int i = 0; i < datatable.Rows.Count - 1; i++)

和:

代码语言:javascript
复制
for (int i = 1; i < datatable.Rows.Count; i++)

但这两种方法似乎都不管用。

代码语言:javascript
复制
datatable.Rows.Count;

显示datatable中有两行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-07 21:42:00

即使返回零行,DataTable也不会为null。然而,在这一行中有一个地方:

代码语言:javascript
复制
passBackRecords[i] = datatable.Rows[i].ToString();

这将失败,-when passBackRecords is null。另一个可能的位置是:

代码语言:javascript
复制
.Rows[i].ToString();

如果行中的值是null,那么在调用ToString()时也会得到一个NullReferenceException。但我几乎会赌注的事实,你还没有初始化passBackRecords

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16985502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档