c#数据库将单词读入列表
我正试图将数据库中的单词写入列表。我说的是 lst.Add(reader.GetString(0)) 如果我说的没错,用这段代码你可以把第一列的单词读到列表中。现在我总是遇到下一个错误 System.Data.dll中发生类型为“System.Data.SqlTypes.SqlNullValueException”的未处理异常 我不明白为什么我会出错。有什么建议吗c#数据库将单词读入列表,c#,database,list,C#,Database,List,我正试图将数据库中的单词写入列表。我说的是 lst.Add(reader.GetString(0)) 如果我说的没错,用这段代码你可以把第一列的单词读到列表中。现在我总是遇到下一个错误 System.Data.dll中发生类型为“System.Data.SqlTypes.SqlNullValueException”的未处理异常 我不明白为什么我会出错。有什么建议吗 using (SqlConnection connection = new SqlConnection(@"Data Source
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();
}
出现该错误是因为表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));
无论如何,最好避免加载第一个示例中所示的空记录
但这是因为ImportedWordList表中的一条或多条记录在Word列中包含空值,所以您会得到该错误 为了避免这种情况,您可以将查询更改为
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));
无论如何,最好避免加载第一个示例中所示的空记录
但是现在是学习如何使用VS调试器的好时机……是的,我知道,我自己在学习,为那些看起来愚蠢的问题感到抱歉。学习如何使用VS调试器的好时机……是的,我知道,我自己在学习,为那些看起来愚蠢的问题感到抱歉。