我正在尝试将数据库中的单词写入列表。我现在说 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();
}
答案 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));
无论如何,最好避免加载空记录,如第一个例子所示。
但是这个