c#数据库将单词读入列表

时间:2016-03-24 21:23:43

标签: c# database list

我正在尝试将数据库中的单词写入列表。我现在说 lst.Add(reader.GetString(0));

当我说错的时候,使用这段代码,你可以将第一列中的单词读入列表中。现在我总是得到下一个错误。

System.Data.dll中出现未处理的“System.Data.SqlTypes.SqlNullValueException”类型异常

我不知道为什么我会收到错误。有人建议吗?

using (SqlConnection connection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = D:\VisualStudio\Projects\runSheet\frontPage_V1.1\Jarvis\Jarvis\Jarvis\jarvisBrain.mdf; Integrated Security = True"))
{
    connection.Open();
    using (SqlCommand command = new SqlCommand("SELECT Word FROM ImportedWordList", connection))
    using (SqlDataReader reader = command.ExecuteReader())
    {  
        while (reader.Read())
        {

            lst.Add(reader.GetString(0));
        }
    }
    richTextBox1.Lines = lst.ToArray();
    connection.Close();
}

1 个答案:

答案 0 :(得分:0)

您收到该错误,因为表ImportedWordList中的一个或多个记录在Word列中包含NULL。

为避免您将查询更改为

using (SqlCommand command = new SqlCommand(@"
           SELECT Word 
           FROM ImportedWordList 
           WHERE Word IS NOT NULL", connection))

另外,您可以在阅读期间测试null:

 if(!reader.IsDBNull(0)
    lst.Add(reader.GetString(0));

无论如何,最好避免加载空记录,如第一个例子所示。

但是这个