Asp.net簡單三層+Sqllite 增刪改查

来源:http://www.cnblogs.com/youMo/archive/2016/01/03/5096341.html
-Advertisement-
Play Games

新建項目à新建一個空白解決方案 在Model新建一個實體類 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; name...


  1. 新建項目à新建一個空白解決方案
  2. 在Model新建一個實體類
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.Threading.Tasks;
    6.  
    7.  
    8. namespace factory.Model
    9. {
    10.     public class factorys
    11.     {
    12.     //ID INTEGER PRIMARY KEY AUTOINCREMENT
    13.     // NOT NULL
    14.     // DEFAULT 1,
    15.     //correspondent NVARCHAR( 100 ) COLLATE NOCASE,
    16.     //contactaddress NVARCHAR( 100 ) COLLATE NOCASE,
    17.     //contacts NVARCHAR( 50 ) COLLATE NOCASE,
    18.     //contactway NVARCHAR( 50 ) COLLATE NOCASE,
    19.     //contactposition NVARCHAR( 50 ),
    20.     //dutydepartment NVARCHAR( 50 ),
    21.     //dutyofficer NVARCHAR( 50 ) COLLATE NOCASE,
    22.     //note NVARCHAR( 2000 ) COLLATE NOCASE
    23.         private int _ID;
    24.  
    25.         public int ID
    26.         {
    27.             get { return _ID; }
    28.             set { _ID = value; }
    29.         }
    30.  
    31.         /// <summary>
    32.         /// 客戶單位
    33.         /// </summary>
    34.         private string _correspondent;
    35.  
    36.         public string Correspondent
    37.         {
    38.             get { return _correspondent; }
    39.             set { _correspondent = value; }
    40.         }
    41.  
    42.         /// <summary>
    43.         /// 聯繫地址
    44.         /// </summary>
    45.         private string _contactaddress;
    46.  
    47.         public string Contactaddress
    48.         {
    49.             get { return _contactaddress; }
    50.             set { _contactaddress = value; }
    51.         }
    52.  
    53.         /// <summary>
    54.         /// 聯繫人
    55.         /// </summary>
    56.         private string _contacts;
    57.  
    58.         public string Contacts
    59.         {
    60.             get { return _contacts; }
    61.             set { _contacts = value; }
    62.         }
    63.  
    64.         /// <summary>
    65.         /// 聯繫方式
    66.         /// </summary>
    67.         private string _contactway;
    68.  
    69.         public string Contactway
    70.         {
    71.             get { return _contactway; }
    72.             set { _contactway = value; }
    73.         }
    74.  
    75.         /// <summary>
    76.         /// 聯繫人職務
    77.         /// </summary>
    78.         private string _contactposition;
    79.  
    80.         public string Contactposition
    81.         {
    82.             get { return _contactposition; }
    83.             set { _contactposition = value; }
    84.         }
    85.  
    86.         /// <summary>
    87.         /// 負責部門
    88.         /// </summary>
    89.         private string _dutydepartment;
    90.  
    91.         public string Dutydepartment
    92.         {
    93.             get { return _dutydepartment; }
    94.             set { _dutydepartment = value; }
    95.         }
    96.  
    97.         /// <summary>
    98.         /// 負責人
    99.         /// </summary>
    100.         private string _dutyofficer;
    101.  
    102.         public string Dutyofficer
    103.         {
    104.             get { return _dutyofficer; }
    105.             set { _dutyofficer = value; }
    106.         }
    107.  
    108.         /// <summary>
    109.         /// 備註
    110.         /// </summary>
    111.         private string _note;
    112.  
    113.         public string Note
    114.         {
    115.             get { return _note; }
    116.             set { _note = value; }
    117.         }
    118.  
    119.  
    120.     }
    121. }

     

  3. 右擊解決方案名稱à新建一個DAL與BLL ,Model類庫,因為個人習慣建好每個類庫時喜歡à右擊類庫屬性à預設命名空間將factoryModel改為àfactory.Model所以應用命名空間時為
    1. using factory.Model;
  4. 如果不更改則為
    1. using factoryModel;
  5. 新建一個Windows窗體應用程式(UI層)
  6. 添加引用 :    因為用的是SQLite資料庫所以要手動添加一個SQLite的dll引用文件,在解決方案下新建一個lib文件夾將SQLite的dll文件添加進去 DAL引用Model,與新建的lib文件下的SQLite.dll 及     BLL引用DAL,Model與Model UI引用DAL與Model
  7. DAL下的ado.net SqlliteHelper.cs
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.Threading.Tasks;
    6. using System.Configuration;
    7. using System.Data.SQLite;
    8. using System.Data;
    9. namespace factory.DAL
    10. {
    11.     public class SqlliteHelper
    12.     {
    13.         //連接字元串
    14.         private static readonly string str = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
    15.  
    16.         //方法
    17.         /// <summary>
    18.         /// 增刪改 都可以
    19.         /// </summary>
    20.         /// <param name="sql">sql語句</param>
    21.         /// <param name="ps">sql語句中的參數</param>
    22.         /// <returns>返回受影響的行數</returns>
    23.         public static int ExecuteNonQuery(string sql, params SQLiteParameter[] ps)
    24.         {
    25.             try
    26.             {
    27.                 using (SQLiteConnection con = new SQLiteConnection(str))
    28.                 {
    29.                     using (SQLiteCommand cmd = new SQLiteCommand(sql, con))
    30.                     {
    31.                         if (ps != null)
    32.                         {
    33.                             cmd.Parameters.AddRange(ps);
    34.                         }
    35.                         con.Open();
    36.                         return cmd.ExecuteNonQuery();
    37.                     }
    38.                 }
    39.             }
    40.             catch (Exception ex)
    41.             {
    42.                 throw ex;
    43.             }
    44.  
    45.         }
    46.         /// <summary>
    47.         /// 查詢首行首列
    48.         /// </summary>
    49.         /// <param name="sql">sql語句</param>
    50.         /// <param name="ps">參數</param>
    51.         /// <returns>首行首列object</returns>
    52.         public static object ExecuteScalar(string sql, params SQLiteParameter[] ps)
    53.         {
    54.             try
    55.             {
    56.                 using (SQLiteConnection con = new SQLiteConnection(str))
    57.                 {
    58.                     using (SQLiteCommand cmd = new SQLiteCommand(sql, con))
    59.                     {
    60.                         con.Open();
    61.                         if (ps != null)
    62.                         {
    63.                             cmd.Parameters.AddRange(ps);
    64.                         }
    65.                         return cmd.ExecuteScalar();
    66.                     }
    67.                 }
    68.             }
    69.             catch (Exception ex)
    70.             {
    71.                 throw ex;
    72.             }
    73.  
    74.         }
    75.  
    76.         /// <summary>
    77.         /// 查詢的
    78.         /// </summary>
    79.         /// <param name="sql"></param>
    80.         /// <param name="ps"></param>
    81.         /// <returns></returns>
    82.         public static SQLiteDataReader ExecuteReader(string sql, params SQLiteParameter[] ps)
    83.         {
    84.             SQLiteConnection con = new SQLiteConnection(str);
    85.             try
    86.             {
    87.                 using (SQLiteCommand cmd = new SQLiteCommand(sql, con))
    88.                 {
    89.                     if (ps != null)
    90.                     {
    91.                         cmd.Parameters.AddRange(ps);
    92.                     }
    93.                     try
    94.                     {
    95.                         con.Open();
    96.                         return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    97.                     }
    98.                     catch (Exception ex)
    99.                     {
    100.                         con.Close();
    101.                         con.Dispose();
    102.                         throw ex;
    103.                     }
    104.                 }
    105.             }
    106.             catch (Exception ex)
    107.             {
    108.  
    109.                 throw ex;
    110.             }
    111.  
    112.         }
    113.  
    114.         /// <summary>
    115.         /// 查詢的是一個表
    116.         /// </summary>
    117.         /// <param name="sql">sql語句</param>
    118.         /// <param name="ps">sql語句中的參數</param>
    119.         /// <returns>一個表</returns>
    120.         public static DataTable ExecuteTable(string sql, params SQLiteParameter[] ps)
    121.         {
    122.             try
    123.             {
    124.                 DataTable dt = new DataTable();
    125.                 using (SQLiteDataAdapter sda = new SQLiteDataAdapter(sql, str))
    126.                 {
    127.                     if (ps != null)
    128.                     {
    129.                         sda.SelectCommand.Parameters.AddRange(ps);
    130.  
    131.                     }
    132.                     sda.Fill(dt);
    133.  
    134.                 }
    135.                 return dt;
    136.             }
    137.             catch (Exception ex)
    138.             {
    139.  
    140.                 throw ex;
    141.             }
    142.  
    143.         }
    144.  
    145.     }
    146. }
  8. App.config配置文件
    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3.   <startup useLegacyV2RuntimeActivationPolicy="true">
    4.  
    5.     <supportedRuntime version="v4.0"/>
    6.  
    7.   </startup>
    8.  
    9.   <connectionStrings>
    10.  
    11.     <add connectionString="Data Source=factory.db;Version=3;" name="conStr"/>
    12.   </connectionStrings>
    13. </configuration>
  9. SQLite資料庫文件就放在UI的binàdebug目錄下
  10. 最後說下參數是
  11. 完整圖片
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 看重構6.4Replace Temp with Query(以查詢取代臨時變數)中提到Replace Temp with Query往往是你運用Extract Method之前必不可少的一個步驟,局部變數會使代碼難以被提煉, 其中Extract Method是VS自帶的功能,我從VS200.....
  • 新建項目à新建一個空白解決方案 在Model新建一個實體類 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; name...
  • 一、將WCF服務部署到IIS上 【轉載自簡單笑容——http://www.cnblogs.com/skdsxx/p/5072726.html】1.首先檢測電腦上是否安裝了IIS,一般來說Win7以上系統自帶IIS2.下麵進行IIS服務的開啟設置控制面板=》打開或關閉Windos功能3.勾選該視窗中的...
  • 引言本文主要講述在區域網內,使用c#基於Udp協議編寫一個對戰的五子棋游戲。主要從Udp的使用、游戲的繪製、對戰的邏輯這三個部分來講解。開發環境:vs2013,.Net4.0,在文章的末尾提供源代碼下載的地址。Udp通信Udp是基於無連接的傳輸協議,特點是資源消耗小、處理速度快、使用方便,不需要與接...
  • 一:故事背景 以前在寫WebApi2的時候,一直是用作前後端分離(WebApi2 +angularjs),可是最近自己在給WebApp寫介面的時候遇到了很多坑,總結一下就是跨域問題。而跨域問題在WebApi2中配置也是有點麻煩,不知道在2中是否有對jsonp跨域問題更好解決方案,如果有,跪求各位博....
  • 《重構》這本書的代碼都是java,我準備用C#來一遍。而今天我的主要任務是寫一大段垃圾代碼出來,然後重構(僅限於函數的,不涉及到其它方面的重構)。程式界面:功能介紹:俠客名字自己取,然後點擊按鈕隨機角色的屬性,根骨,經脈,柔韌,悟性等四項屬性值都是隨機而來。其他的都是由這四個屬性計算而來:根骨:影響...
  • Technorati 標記: http 代理驗證及測試Technorati 標記: C#參考了網上很多資料,綜合整理出來最終的代碼:using System; using System.Collections; using System.Collections.Generic; using Syst...
  • 使用NuGet安裝Nancy和直接引用源碼項目存在一些差異,如序列化,授權驗證問題。如果引用源碼的話,自定義JsonSerializer,如下:註意,需要使用NuGet安裝Newtonsoft.Json public class CustomJsonNetSerializer : JsonSeria...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...