C#使用sqlite数据库SQL logic error no such function: SCOPE_IDENTITY

原因:使用  SimpleCRUD的inset方法报错,sqlite中没有SCOPE_IDENTITY()这个方法,insert方法生成的SQL中调用了这个方法

sqlite中应该是@SCOPE_IDENTITY

解决:SimpleCRUD.SetDialect(SimpleCRUD.Dialect.SQLite);将SimpleCRUD的数据库格式设置为sqlite,  可在程序启动后就设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我之前给出的代码在使用 SQLite 数据库时可能会出错。因为 SQLite 数据库中并没有内置 CONCAT 函数,而是使用 || 运算符来实现字符串拼接。 因此,可以将查询语句中的 CONCAT 函数改为使用 || 运算符,示例代码如下: ```csharp string connectionString = "YourConnectionString"; // 数据库连接字符串 string query = "SELECT COUNT(CASE WHEN 季度 = 'Q1' THEN 1 ELSE NULL END) AS Q1Count, " + "COUNT(CASE WHEN 季度 = 'Q2' THEN 1 ELSE NULL END) AS Q2Count, " + "COUNT(CASE WHEN 季度 = 'Q3' THEN 1 ELSE NULL END) AS Q3Count, " + "COUNT(CASE WHEN 季度 = 'Q4' THEN 1 ELSE NULL END) AS Q4Count, " + "COUNT(*) AS TotalCount, " + "ROUND(SUM(CASE WHEN 季度 = 'Q1' THEN 1 ELSE 0 END)/COUNT(*)*100,2)||'%' AS Q1Percent, " + "ROUND(SUM(CASE WHEN 季度 = 'Q2' THEN 1 ELSE 0 END)/COUNT(*)*100,2)||'%' AS Q2Percent, " + "ROUND(SUM(CASE WHEN 季度 = 'Q3' THEN 1 ELSE 0 END)/COUNT(*)*100,2)||'%' AS Q3Percent, " + "ROUND(SUM(CASE WHEN 季度 = 'Q4' THEN 1 ELSE 0 END)/COUNT(*)*100,2)||'%' AS Q4Percent " + "FROM FAIsum " + "GROUP BY 季度"; DataTable dataTable = new DataTable(); using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { SQLiteDataAdapter adapter = new SQLiteDataAdapter(query, connection); adapter.Fill(dataTable); } dataTable.Columns.Add("Q1Percent", typeof(string)); dataTable.Columns.Add("Q2Percent", typeof(string)); dataTable.Columns.Add("Q3Percent", typeof(string)); dataTable.Columns.Add("Q4Percent", typeof(string)); foreach (DataRow row in dataTable.Rows) { double q1Count = Convert.ToDouble(row["Q1Count"]); double q2Count = Convert.ToDouble(row["Q2Count"]); double q3Count = Convert.ToDouble(row["Q3Count"]); double q4Count = Convert.ToDouble(row["Q4Count"]); double totalCount = Convert.ToDouble(row["TotalCount"]); row["Q1Percent"] = Math.Round(q1Count / totalCount * 100, 2) + "%"; row["Q2Percent"] = Math.Round(q2Count / totalCount * 100, 2) + "%"; row["Q3Percent"] = Math.Round(q3Count / totalCount * 100, 2) + "%"; row["Q4Percent"] = Math.Round(q4Count / totalCount * 100, 2) + "%"; } ``` 这里使用SQLiteConnection 和 SQLiteDataAdapter 类,同时将 CONCAT 函数改为使用 || 运算符。请注意,SQLite 中的 || 运算符是用于字符串拼接的,而不是逻辑运算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值