c# - 检查数据库表是否包含任何行
问题描述
我正在将数据加载到具有 3 个Entry
控件的表单中。
我为此使用的对象称为mySettings
,它是SystemSettings
我的数据库中的一个类和数据库表的对象SQLite
。
到目前为止,我有这段代码,它按原样工作。
var db = new SQLiteConnection(dbPath);
Entry txtServer;
txtServer = new Entry { FontSize = 10 };
controlGrid.Children.Add(txtServer, 2, 0);
Grid.SetColumnSpan(txtServer, 4);
SystemSettings mySettings;
mySettings = db.Get<SystemSettings>(0);
txtServer.Text = mySettings.FTPServer;
但是,在加载值之前,我需要检查SystemSettings
表中是否包含任何行。
我在网上看过一些指南。
有人说使用类似的东西
SQLiteCommand cmd;
cmd = new SQLiteCommand(db);
...
int result = Convert.ToInt32(db.ExecuteScalar)
但是,我收到一个错误说
SQLiteCommand 不包含任何包含 x 参数的方法
无论我传入多少(0个或更多)。
似乎也没有一种方法作为db.
SystemSettings
那么在尝试使用不存在的数据之前,如何检查是否包含任何行?
解决方案
下面的模式应该可以工作。.ExecuteScalar() 方法实际上是在命令而不是连接上。
int count;
using (SQLiteConnection db = new SQLiteConnection("MY_CXN_STRING"))
using (SQLiteCommand cmd = new SQLiteCommand("SELECT COUNT(*) FROM SystemSettings"))
{
db.Open();
count = (int)cmd.ExecuteScalar();
db.Close();
}
bool hasRows = count != 0;
推荐阅读
- javascript - 获取从 HTML 到 javascript 数组的选定选项(onchange)
- css - 使用多边形的撕纸 CSS 效果
- amazon-web-services - 循环通过大型 DynamicFrame 输出到 S3 以解决“maxResultSize”错误
- z3 - bddbddb 中的非循环关系
- powershell - Powershell 在模块内加载模块 [范围]
- javascript - 脚本在 Bootstrap 4 主题中不起作用
- python - 如何在python中向谷歌驱动器文件添加描述
- c++ - 在 C++ 中的 Map 中插入重复值时会发生什么
- php - PHP - 获取 CPT 分类,从 ACF 显示分类颜色
- php - 按子句顺序计算两列的总和 - laravel