zoukankan      html  css  js  c++  java
  • 自用SqlHelper.cs

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Data;
      6 using System.Data.SQLite;
      7 using System.Windows;
      8 
      9 namespace PaperTool.DAL
     10 {
     11     class SqlHerlper
     12     {
     13         public static void DataTableToDB(DataTable dt, string tablename)
     14         {
     15             using (SQLiteConnection conn = new SQLiteConnection("data source = dbExcel.db"))
     16             {
     17                 conn.Open();
     18                 List<string> colNames = new List<string>();
     19                 List<string> colNamesParameter = new List<string>();
     20                 foreach (DataColumn col in dt.Columns)
     21                 {
     22                     colNames.Add(col.ColumnName);
     23                     colNamesParameter.Add("@" + col.ColumnName);
     24                 }
     25                 string colNameStr = string.Join(@",", colNames);
     26                 string colNameStrParameter = string.Join(@",", colNamesParameter);
     27                 using (SQLiteCommand cmd = conn.CreateCommand())
     28                 {
     29                     cmd.CommandText = string.Format("create  table {0} ({1})", tablename, colNameStr);
     30                     cmd.ExecuteNonQuery();
     31                 }
     32                 using (SQLiteTransaction tran = conn.BeginTransaction())
     33                 {
     34                     foreach (DataRow row in dt.Rows)
     35                     {
     36                         using (SQLiteCommand cmd = conn.CreateCommand())
     37                         {
     38                             cmd.CommandText = string.Format("insert into {0} values({1})", tablename, colNameStrParameter);
     39                             cmd.Transaction = tran;
     40                             for (int i = 0; i < dt.Columns.Count; i++)
     41                             {
     42                                 cmd.Parameters.Add(new SQLiteParameter(colNamesParameter[i], (object)row[i]));
     43                             }
     44                             cmd.ExecuteNonQuery();
     45                         }
     46                     }
     47                     tran.Commit();
     48                 }
     49                 
     50             }
     51         
     52         }
     53 
     54         public static DataTable Querry(string sql,params SQLiteParameter[] parameters)
     55         {
     56             using (SQLiteConnection conn = new SQLiteConnection("data source=dbExcel.db"))
     57             {
     58                 conn.Open();
     59                 using (SQLiteCommand cmd = conn.CreateCommand())
     60                 {
     61                     cmd.CommandText = sql;
     62                     cmd.Parameters.AddRange(parameters);
     63                     DataSet ds = new DataSet();
     64                     SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
     65                     adapter.Fill(ds);
     66                     return ds.Tables[0];
     67                 }
     68             }
     69         }
     70 
     71         public static void Reset()
     72         {
     73             DataTable dt = Querry(@"select name from sqlite_master where type = 'table'");
     74             foreach (DataRow row in dt.Rows)
     75             {
     76                 ExecuteNonQuerry("drop table " + row["name"].ToString());
     77             }
     78         }
     79 
     80         public static void Reset(string tablename)
     81         {
     82             object count = ExecuteScalar("select count(*) from sqlite_master where type = 'table' and name =@name", new SQLiteParameter[] { new SQLiteParameter("@name", tablename) });
     83             int cnt = Convert.ToInt32(count);
     84             if (cnt <= 0)
     85             {
     86                 return;
     87             }
     88             else
     89             {
     90                 ExecuteNonQuerry("drop table " + tablename);
     91             }
     92         }
     93 
     94         public static int ExecuteNonQuerry(string sql,params SQLiteParameter[] parameters)
     95         {
     96             using (SQLiteConnection conn = new SQLiteConnection("data source = dbExcel.db"))
     97             {
     98                 conn.Open();
     99                 using (SQLiteCommand cmd = conn.CreateCommand())
    100                 {
    101                     cmd.CommandText = sql;
    102                     cmd.Parameters.AddRange(parameters);
    103                     return cmd.ExecuteNonQuery();
    104                 }
    105             }
    106         }
    107 
    108         public static object ExecuteScalar(string sql, params SQLiteParameter[] parameters)
    109         {
    110             using (SQLiteConnection conn = new SQLiteConnection("data source= dbExcel.db"))
    111             {
    112                 conn.Open();
    113                 using (SQLiteCommand cmd = conn.CreateCommand())
    114                 {
    115                     cmd.CommandText = sql;
    116                     cmd.Parameters.AddRange(parameters);
    117                     return cmd.ExecuteScalar();
    118                 }
    119             }
    120         }
    121 
    122         public static List<string> TableNames()
    123         {
    124             DataTable dtTableName = SqlHerlper.Querry("select name from sqlite_master where type='table'");
    125             List<string> list = new List<string>();
    126             foreach (DataRow row in dtTableName.Rows)
    127             {
    128                 list.Add(row["name"].ToString());
    129             }
    130             return list;
    131         }
    132     }
    133 }
  • 相关阅读:
    [LeetCode]3Sum Closest
    [LeetCode]3Sum
    [LeetCode]Roman to Integer
    [LeetCode]Integer to Roman
    [LeetCode]Container With Most Water
    [LeetCode]Palindrome Number
    [LeetCode]String to Integer (atoi)
    [LeetCode]Reverse Integer
    Elasticserch与Elasticsearch_dsl用法
    es 查询更新操作
  • 原文地址:https://www.cnblogs.com/bbcar/p/2862882.html
Copyright © 2011-2022 走看看