C# 中操作SQLite,第一次插入数据成功,后面的命令无效,求帮忙看看

Sitrone 2014-07-25 10:58:04
开始数据库中无config表
第二条更新命令无效,只能插入第一条templateCableSchedularPath数据
 SQLiteHelper.ExecuteNonQuery(Config.dbPath, " CREATE TABLE if not exists config (mainTableName TEXT, CableDataSourcePath TEXT, TemplateNodePassingPath TEXT,templateCableSchedularPath TEXT); ", CommandType.Text);

SQLiteCommand cmd = new SQLiteCommand();

cmd.CommandText = "SELECT config.\"templateCableSchedularPath\" FROM config";

if (SQLiteHelper.ExecuteScalar(Config.dbPath, cmd) == null)
{
Config.templateCableSchedularPath = tbtemplateCableSchedularPath.Text = "请先选择文件路径再进行操作";

cmd.CommandText = "insert or replace into config(templateCableSchedularPath) values(@templateCableSchedularPath)";
cmd.Parameters.AddRange(new[] {//添加参数
new SQLiteParameter("@templateCableSchedularPath", Config.templateCableSchedularPath)
});
SQLiteHelper.ExecuteNonQuery(Config.dbPath, cmd);

}
else
{
try
{
this.tbtemplateCableSchedularPath.Text = SQLiteHelper.ExecuteScalar(Config.dbPath, cmd).ToString();
}
catch (Exception ex)
{
MessageBox.Show("请放置正确的数据库文件\n" + ex.Message);
_fatherForm.close();
return;
}
}

cmd.CommandText = "SELECT config.\"mainTableName\" FROM config";
if (SQLiteHelper.ExecuteScalar(Config.dbPath, cmd) == null )
{
Config.dbTableName = "无";

cmd.CommandText = "UPDATE config SET mainTableName=@mainTableName WHERE templateCableSchedularPath=@TemplateNodePassingPath";
cmd.Parameters.AddRange(new[] {//添加参数
new SQLiteParameter("@mainTableName", "无" ),
new SQLiteParameter("@templateCableSchedularPath", "请先选择文件路径再进行操作" )
});
SQLiteHelper.ExecuteNonQuery(Config.dbPath, cmd);

}
else
{
Config.dbTableName = SQLiteHelper.ExecuteScalar(Config.dbPath, cmd).ToString();
}

...全文
351 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-07-28
  • 打赏
  • 举报
回复
不能DEBUG,影响大了 因为出现问题的地方很多时候并不是仅仅1个变量有问题 简单的例子:比如循环datatable的时候某一行数据不正确 那我需要同时看这个datatable里到底都有什么,有几行几列,列都叫什么名字,什么数据类型 循环的时候行循环到第几次,列循环到第几次,里面的值是什么,执行转换后又是什么 很多时候没法一下就定位到出问题的代码,需要一步一步跟,还是上面的例子,循环取值报错,那我至少要知道到底循环到第几次出问题 总不能把try...catch加到循环里面去吧,每循环一次都try一下?
Sitrone 2014-07-28
  • 打赏
  • 举报
回复
引用 7 楼 ysj1163620987 的回复:
首先,我觉得你要解决的第一件事是,为什么无法断点Debug。 第二,不能靠感觉。 第三。Debug,你就发现问题了。
第一,为什么无法断点,曾经尝试过解决,但是确实没有解决,而且也不是不想解决,是真的在网上也找了好久问了好久没有解决办法,一般情况下无法在窗体断点的话,我都是用messagebox弹窗来调试的。 第二,也不能说是靠感觉吧,但确实目前的工程做了两个个多月了,确实没发现有影响 感谢批评指正!
聖傑 2014-07-26
  • 打赏
  • 举报
回复
首先,我觉得你要解决的第一件事是,为什么无法断点Debug。 第二,不能靠感觉。 第三。Debug,你就发现问题了。
Sitrone 2014-07-26
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
没什么影响?那出了问题只能靠猜了. 生成模式选择debug,然后全部重新编译
试过了,还是没有用,
於黾 2014-07-25
  • 打赏
  • 举报
回复
没什么影响?那出了问题只能靠猜了. 生成模式选择debug,然后全部重新编译
Sitrone 2014-07-25
  • 打赏
  • 举报
回复
引用 3 楼 qq807081817 的回复:
太长没怎么看,你一步步的跟啊
这个。。。。。我是在窗体里面写的这些代码,然后断点的时候老是出现“无可用源”,然后这个问题一直也没有解决,所以也就不能断点一步步跟,因为感觉没什么影响,我也就没管了这事儿了。
涛锅 2014-07-25
  • 打赏
  • 举报
回复
太长没怎么看,你一步步的跟啊
Sitrone 2014-07-25
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
1和2完全不一样啊 没有表你往哪里update 改成跟1一样不就得了
有表呀,都是config表,我用过insert,也不行,后面才改成update
於黾 2014-07-25
  • 打赏
  • 举报
回复
1和2完全不一样啊 没有表你往哪里update 改成跟1一样不就得了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧