zoukankan      html  css  js  c++  java
  • 在.net中使用sqlite

    最近学习了下sqlite的使用,记录一下。

    关于.net中的配置可以看 :数据本地存储方案之SQLite:http://www.cnblogs.com/luminji/archive/2010/12/19/1910396.html 

    这篇文字说的很详细。

    首先

    sqlite数据库本身是一个文本文件,所以不用考虑服务器上或者客户端要安装什么工具的问题,一般相对与access比较的话,就是access要安装了才能够用。

    其次

    sqlite的管理工具很多,网上搜一下很多,sqlitestudio是个轻量级的管理工具,我用Navicat for SQLite。当然还有其他的管理工具,凭个人喜好。

    接着

       开始贴代码,

       关于SQLiteHelper类,我比较懒,抄的上面那个链接的,但是还是贴出来.

    SQLiteHelper

    老一套,关于增删改查:

    在数据库中建立的一个表:

    sql

    /// <summary>
            /// 添ャィェ加ó一?条?数簓据Y
            /// </summary>
            /// <param name="node"></param>
            /// <returns></returns>
            public int NodeAdd(Model.Nodes node)
            {
                if (node != null)
                {
                    string sql = "insert into tb_Nodes(fid,NodeName,Remark) values (@fid,@NodeName,@Remark);select last_insert_rowid();";
                    SQLiteParameter[] parameter = {
                      new SQLiteParameter("@fid",node.fid),
                      new SQLiteParameter("@NodeName",node .NodeName),
                      new SQLiteParameter("@Remark",node .Remark)
                                            };
                    object i = Dal.SQLiteHelper.ExecuteScalar(sql, parameter);
                    if (i != null)
                        return Convert.ToInt16(i);
                    else
                        return 0;
                    
                }
                else
                    return 0;
            }
            /// <summary>
            /// 修T改?一ー?条?数簓据Y
            /// </summary>
            /// <param name="node"></param>
            /// <returns></returns>
            public int NodeUpdate(Model.Nodes node)
            {
                if (node != null)
                {
                    string sql = "update tb_Nodes set fid=@fid,NodeName=@NodeName,Remark=@Remark where id=@id ";
                    SQLiteParameter[] parameter = {
                      new SQLiteParameter("@id",node.id ),
                      new SQLiteParameter("@fid",node.fid),
                      new SQLiteParameter("@NodeName",node .NodeName),
                      new SQLiteParameter("@Remark",node .Remark)
                                            };
                    int i = Dal.SQLiteHelper.ExecuteNonQuery(sql, parameter);
                    return i;
    
                }
                else
                    return 0;
            }
            /// <summary>
            /// 删ヲ?除yid为aNodeId的?数簓据Y
            /// </summary>
            /// <param name="NodeId"></param>
            /// <returns></returns>
            public int NodeDelete(int NodeId)
            {
    
                string sql = "delete from tb_Nodes where id=@NodeId";
                SQLiteParameter[] parameter = { 
                                              new SQLiteParameter("@NodeId",NodeId)
                                              };
                int i= Dal.SQLiteHelper.ExecuteNonQuery(sql,parameter);
                return i;
            }
    

    是不是发现和sql server的操作很相似呢。

    有个错误操作:
    在操作的时候如果数据库没有的话,它会自动的为你建立一个数据库,当数据库访问路径名不小心写错的时候,由于被新建了一个数据库,不会抛出数据库不存在的错误 ,会抛出 no such table: [tableName] 的错误

  • 相关阅读:
    使用SDL2显示一张图片,SDL2上手贴
    两种方法操作其它mac应用的窗口
    golang子进程的启动和停止,mac与linux的区别
    自己动手,装一个液晶电视
    在Ubuntu上搭建kindle gtk开发环境
    macOS的OpenCL高性能计算
    量子计算及量子计算的模拟
    iPhone多次输入错误密码锁机后刷机恢复(原有内容会丢失)
    Day 2 总结
    Day 13 linux 的输入输出与管道的使用
  • 原文地址:https://www.cnblogs.com/ac1985482/p/1917997.html
Copyright © 2011-2022 走看看