c# - C# SQL“索引超出了数组的范围。”
问题描述
我一直在学习如何使用 C# 创建 SQL 库,但我遇到了一个问题。在这里我正在测试如何将文本行的值返回到字符串
为什么编译器会在这里出错?我阅读了方法列表,我的数据库中的“名字”列还有 3 个值。为什么我只能看到一个索引?
我提前感谢您的帮助
{
static void Main(string[] args)
{
string dbName = "URI=file:testeDB.db";
using (var connection = new SqliteConnection(dbName))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText = "SELECT FirstName FROM Persons";
SqliteDataReader reader = command.ExecuteReader();
Console.WriteLine(reader);
if ( reader.Read() )
{
Console.WriteLine("Reading...");
Thread.Sleep(1000);
string myVar = reader.GetString(2); //Index was outside the bounds of the array."
Console.WriteLine(myVar);
}
else
{
Console.WriteLine("Dont Read");
}
}
}
}
}
解决方案
发生这种情况是因为文档中的方法 GetString(int)说“将指定列的值作为字符串获取”。根据您向我们展示的代码,您只是从表 Persons 中检索一列,这就是您收到异常的原因,在这种情况下只有 GetString(0) 可以工作。
推荐阅读
- python - 如何在没有 odoo 记录的情况下转储设置?
- php - 如何在 laravel 中做表单
- ios - React Native - IOS 中有时不会触发本地推送通知
- android - 如果在指定的时间内没有再次打开应用程序,是否会删除保存到磁盘的活动堆栈?
- php - 如何使用 CodeIgniter 中的下拉列表在 HTML 表中显示过滤后的数据库值?
- android - 每次我尝试登录时,它都会显示我的身份验证失败或 createUserWithEmail:onComplete 我只是无法让它发挥作用
- javascript - TypeError:无法读取未定义的属性“位置”
- kubernetes - 创建 cockroach db 每日备份到 kubernetes 到 GCP 存储的脚本
- php - 光滑的滑块不改变活动的幻灯片位置
- visual-studio-2015 - Azure DevOps Build - 发布时不会在 bin 文件夹中创建 .compiled 文件