using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite; namespace EasyEnergy.AppLogicService
{
public class AlarmSqliteDbHelp
{ public static string ConnSqlLiteDbPath = @"D:\data\test.data"; public static string ConnString
{
get
{
return string.Format("Data Source={0}", ConnSqlLiteDbPath);
}
} public static int ExecuteRefId(string sql)
{
SQLiteConnection connection;
SQLiteTransaction transaction = null;
try
{
connection = new SQLiteConnection(ConnString);
connection.Open();
var command = new SQLiteCommand(connection)
{
CommandText = sql + ";SELECT last_insert_rowid()"
};
return Convert.ToInt32(command.ExecuteScalar());
}
catch (Exception)
{
transaction.Rollback();
throw;
}
} public static int Execute(string sSQL, bool bUseTransaction = false)
{
int num;
SQLiteConnection connection;
//if (!bUseTransaction)
//{
// connection = new SQLiteConnection(ConnString);
// connection.Open();
// var command = new SQLiteCommand(connection) {
// CommandText = sSQL
// };
// return command.ExecuteNonQuery();
//}
SQLiteTransaction transaction = null;
try
{
connection = new SQLiteConnection(ConnString);
connection.Open();
transaction = connection.BeginTransaction();
num = new SQLiteCommand(connection) { CommandText = sSQL }.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
return num;
} public static DataTable GetDataTable(string sSQL)
{
var connection = new SQLiteConnection(ConnString);
connection.Open();
var command = new SQLiteCommand
{
CommandText = sSQL,
Connection = connection
};
var adapter = new SQLiteDataAdapter(command);
var dataTable = new DataTable("table");
adapter.Fill(dataTable);
return dataTable;
} public static int GetMaxId(string sKeyField, string sTableName)
{
DataTable dataTable = GetDataTable("select ifnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]");
if ((dataTable != null) && (dataTable.Rows.Count > ))
{
return Convert.ToInt32(dataTable.Rows[][].ToString());
}
return ;
} public static object GetSingle(string sSQL)
{
DataTable dataTable = GetDataTable(sSQL);
if ((dataTable != null) && (dataTable.Rows.Count > ))
{
return dataTable.Rows[][];
}
return null;
} }
}

C#之WPF连接sqllite数据库的更多相关文章

  1. 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange

    如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...

  2. WPF应用Access数据库

    WPF应用Access数据库 现在Access数据库中有表GuestTable,其中的字段如下图所示,现在需要应用WPF技术为此表制作一个数据库管理窗口,实现对此数据库中的数据进行数据的增.删.改和查 ...

  3. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  4. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  5. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  6. 【.net 深呼吸】连接Access数据库应注意的几点

    本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...

  7. nhibernate连接11g数据库

    我框架的数据映射用 nhibernate连接多数据库,这次又增加了oracle11g,负责开发的同事始终连接不上,悲催的sharepoint调试是在不方便... 下面描述下问题的解决,细节问题有3个: ...

  8. pycharm连接mysql数据库

    新的环境配置pycharm的项目时,发现pycharm不能连接到mysql数据库.由于安了java环境但是还没配置相关的库,并且jetbrains家的IDE一般都是java写的,于是猜想可能是java ...

  9. Windows操作系统下远程连接MySQL数据库

    用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...

随机推荐

  1. 图解一致性hash算法和实现

    更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 一致性hash算法是什么? 一致性hash算法,是麻省理工学院1997年提出的一种算法,目前主要应用于分布式缓存当中 ...

  2. Unity Editor已停止工作

    在更换系统之后,可能会出现打开刚安装好的Unity,显示Unity Editor已停止工作,这时候我们考虑是系统win7的问题.可以在原系统上升级,也可以重新安装,升级.文中所涉及到的软件,可在右侧加 ...

  3. HDU 6313

    题意略. 思路:数论题. #include<bits/stdc++.h> using namespace std; ; const int maxn = p * p; ][maxn + ] ...

  4. 超越Storm,SparkStreaming——Flink如何实现有状态的计算

    流式计算分为无状态和有状态两种情况.无状态计算观察每个独立的事件,Storm就是无状态的计算框架,每一条消息来了以后和前后都没有关系,一条是一条.比如我们接收电力系统传感器的数据,当电压超过240v就 ...

  5. python暴力算法快乐数

    编写一个算法来判断一个数是不是"快乐数". 一个"快乐数"定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 ...

  6. 深入GPU硬件架构及运行机制

    目录 一.导言 1.1 为何要了解GPU? 1.2 内容要点 1.3 带着问题阅读 二.GPU概述 2.1 GPU是什么? 2.2 GPU历史 2.2.1 NV GPU发展史 2.2.2 NV GPU ...

  7. 【selenium】-自动化测试的前提

    本文由小编根据慕课网视频亲自整理,转载请注明出处和作者. 1.为什么要做自动化? 2.是否适合做自动化? 时间:时间如果很紧,连做功能测试的时间都很紧张,是没有时间做自动化的. 人员:如果都是初级的测 ...

  8. SDU暑期集训排位(5)

    SDU暑期集训排位(5) A. You're in the Army Now 题意 类似选志愿.每个人有 mark,有优先级从高到低的志愿. 做法 定睛一看,鲨鼻题.然后 WA. 为什么会 WA 呢? ...

  9. CF - 1107 E Vasya and Binary String DP

    题目传送门 题解: dp[ l ][ r ][ k ] 代表的是[l, r]这段区间内, 前面有k-1个连续的和s[l]相同且连续的字符传进来的最大值. solve( l, r, k) 代表的是处理 ...

  10. Zabbix面试总结

    zabbix官方的一句话描述zabbix: 监视任何事情适用于任何IT基础架构,服务,应用程序和资源的解决方案 Monitor anythingSolutions for any kind of IT ...