SQLiteでINSERT、UPDATE、DELETEが遅かったのでいろいろと調べた結果、トランザクションを指定する必要があることが分かりました。
トランザクションを使用しないでINSERT、UPDATE、DELETEを行うと処理にとても時間がかかりますが、トランザクションを使用した場合は処理時間が早くなりました。
SQLiteでINSERT、UPDATE、DELETEを行う場合は「BEGIN TRANSACTION」、「COMMIT」を忘れずに。
ITについてのメモ
SQLiteでINSERT、UPDATE、DELETEが遅かったのでいろいろと調べた結果、トランザクションを指定する必要があることが分かりました。
トランザクションを使用しないでINSERT、UPDATE、DELETEを行うと処理にとても時間がかかりますが、トランザクションを使用した場合は処理時間が早くなりました。
SQLiteでINSERT、UPDATE、DELETEを行う場合は「BEGIN TRANSACTION」、「COMMIT」を忘れずに。
Excelは数式でいろいろな計算ができますが、複雑なデータの集計などを数式で実装するのは難しいです。
そのため、Excelで簡単にデータベースを使用できないかと調べたところ、「SQLiteForExcel」という便利なものがあることがわかりました。
https://github.com/govert/SQLiteForExcel
上記サイトからのダウンロードの方法は「Clone or download」ボタンを押下して「Download ZIP」ボタンを押下すればダウンロードできます。
Distributionフォルダにある「SQLiteForExcel.xls」、「SQLiteForExcel_64.xlsm」の標準モジュールにSQLiteを操作するための関数が登録されています。
下記のように実装すると、追加したクエリパラメータを自動で繋げて、その上URLエンコードもされる。
NameValueCollection nc = HttpUtility.ParseQueryString(string.Empty, Encoding.UTF8); // エンコード指定しない場合 // NameValueCollection nc = HttpUtility.ParseQueryString(string.Empty); nc.Add("Param1", "あああ"); nc.Add("Param2", "aaa"); Response.Redirect("test.aspx?" + nc.ToString());
Webサイトの場合とプロジェクトの場合で以下のパターンがあります。
【Webサイトの場合】
1.WebControlを継承したクラスをApp_Codeに作成
namespace WebSite2 { public class Test : GridView { } }
2.使用するaspに配置
<%@ Register TagPrefix="custom" namespace="WebSite2" %> <custom:Test runat="server"></custom:Test>
【C#プロジェクトの場合】
1.AssemblyInfo.csにタグとnamespaceの割付情報を追記
//WebSite2というnamespaceをcustomタグに割付 [assembly: TagPrefix("WebSite2", "custom")]
2.WebControlを継承したクラスを上記で指定したnamespaceに作成
namespace WebSite2 { public class Test : GridView { } }
3.使用するaspに配置
<%@ Register Assembly="WebSite2" TagPrefix="custom" Namespace="WebSite2"%> <custom:Test ID="Test1" runat="server" />
DataTableの中の重複行を削除する方法は下記の通りです。
Datatable tbl;
tbl.DefaultView.ToTable(false, “col1”, “col2”);
※ToTableメソッドを使用する。第一引数が重複可否の設定(true:重複可、false:重複不可)、第二引数以降は抽出対象となる列名