SQLiteHelperクラス:
システムを使用しました。 System.Collections.Genericを使用しました。 System.Textのを使用しました。 System.Dataを使用しました。 System.Data.OleDbを使用しました。 System.Data.SQLiteを使用しました。 System.Windows.Formsを使用しました。 名前空間TestSQLite { publicクラスのSqliteHelper { //连接字符串 プライベート静的文字列str = "データソース=" + AppDomain.CurrentDomain.BaseDirectory + "\\ DATA.db"。 /// <要約> ///增删改 /// 20180723 /// </要約> /// <PARAM NAME = "SQL"> SQL语句</ param>の /// <PARAM NAME = "PARAM"> SQL参数</ param>の /// <リターン>受影响的行数< パブリックstatic int型は、ExecuteNonQuery(文字列のSQLは、SQLiteParameter [] paramはparamsは) { 試みる { (SQLiteConnectionコン=新しいSQLiteConnection(STR))を使用して、 { 使用(SQLiteCommand CMD =新しいSQLiteCommand(SQL、CON)) { con.Open()。 (もし!PARAM = NULL) { cmd.Parameters.AddRange(パラメータ); } ストリングSQL2 = cmd.CommandText。 //con.Close()。 cmd.ExecuteNonQueryリターン(); } } } キャッチ(SQLiteException SE) { 戻り0; } } /// <まとめ> /// CRUD /// 20180723が /// </要約> /// <PARAM NAME = "SQL"> </ param>のSQL文 /// <PARAM NAME = "PARAM"> SQLパラメータは、</ param>の /// <戻り値>影響を受けた行の数</戻り値> は、ExecuteNonQuery int型のpublic static(文字列のSQL) { 試み { 使用(SQLiteConnectionコン=新しいSQLiteConnection(STR)) /// <要約> ///查询 /// 20180723 { 使用(SQLiteCommand CMD =新しいSQLiteCommand(SQL、CON)) { con.Open()。 文字列SQL2 = cmd.CommandText。 con.Close(); cmd.ExecuteNonQueryを返します(); } } } キャッチ(SQLiteException SE) { 0を返します。 } } /// </要約> /// <PARAM NAME = "SQL"> SQL语句</ PARAM> /// <PARAM NAME = "PARAM"> SQL参数</ PARAM> /// <戻ります> パブリック静的オブジェクトは、ExecuteScalar(文字列SQL) { 試みる { (SQLiteConnectionコン=新しいSQLiteConnection(STR))を使用して、 { (SQLiteCommand CMD =新しいSQLiteCommand(CON))を使用して { con.Open()。 cmd.CommandText = SQL; cmd.ExecuteScalarを返します(); キャッチ(例外例){ MessageBox.Show(ex.Message)。 ヌルを返します。 } } /// <要約> ///查询 /// 20180723 /// </要約> /// <PARAM NAME = "SQL"> SQL语句</ PARAM> /// <PARAM NAME = "PARAM"> SQL参数</ PARAM> /// <戻る>首行首列</戻り> パブリック静的オブジェクトは、ExecuteScalar(文字列SQLは、SQLiteParameter [] PARAMをparamsは) { (SQLiteConnectionコン=新しいSQLiteConnection(STR))を使用して、 { 使用(SQLiteCommand CMD =新しいSQLiteCommand(SQL、CON)) { con.Open( ); (もし!PARAM = NULL) { cmd.Parameters.AddRange(パラメータ); } } } /// <要約> ///多行查询 /// 20180723 /// </要約> /// <PARAM NAME = "SQL"> SQL语句</ PARAM> /// <PARAM NAME = "PARAM"> SQL参数</ PARAM> /// <戻る> SQLiteDateReader </戻り> パブリック静的SQLiteDataReaderのExecuteReader(文字列のSQLは、SQLiteParameterは[] PARAM paramsは) { (SQLiteConnectionコン=新しいSQLiteConnection(STR))を使用して、 { (使用しますSQLiteCommand CMD =新しいSQLiteCommand(SQL、CON)) {))と { (もし!PARAM = null)の cmd.Parameters.AddRange(PARAM)。 } 試みる { )(con.Openします。 cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)を返します。 } キャッチ(例外例) { con.Close()。 con.Dispose(); EXを投げます。 } } } } /// <要約> ///查询多行数据 /// 20180723 /// </要約> ///ます。<param name = "SQL"> SQL语句</ PARAM> /// <PARAM NAME = "PARAM"> SQL参数</ PARAM> /// <戻る>一个表</戻ります> パブリック静的データテーブルExecuteTable(文字列のSQL、paramsはSQLiteParameter [] PARAM) { データテーブルDT =新しいデータテーブル()。 使用して(SQLiteDataAdapterのSDA =新しいSQLiteDataAdapter(SQL、STR)) { 場合(!PARAM = NULL) { sda.SelectCommand.Parameters.AddRange(パラメータ); } sda.Fill(DT)。 } DTを返します。 /// </要約> /// <PARAM NAME = "TBNAME">テーブル</ PARAM> /// <PARAM NAME = "insertData">データディクショナリを挿入する</ PARAM> /// <戻り値>影響を受けた行</戻り値>の数 のpublic static int型のexecutelnsert(文字列TBNAME、辞書<文字列、文字列> insertData) { 文字列ポイント= ""; //区切り文字(、) 文字列keyStr = ""; //スプライシング文字のフィールド名文字列 文字列valueStr = ""; //文字列の連結値の 一覧<SQLiteParameter> PARAM =新しい新しいリスト<SQLiteParameter>(); foreachの(insertData.Keysの文字列キー) { ) param.Add(新SQLiteParameter( "@" +キー、insertData [キー])); keyStr String.Formatの+ =( "{0} '{1}'」、ポイント)、キー。 + = String.FormatのvalueStr(ポイント、キー"@ {{0}} 1。"); /// <戻り値>影響を受けた行数</リターン> ポイント= ""; } 文字列のSQL = String.Formatの( "INSERT INTO` {0} '({1})の値({2})"、TBNAME、keyStr、valueStr)。 //は、SQLを返します。 返すのExecuteNonQuery(SQL、param.ToArray()); } /// <要約> ///执行更新语句 /// 20180725 /// </要約> /// <PARAM NAME = "TBNAME">表名</ PARAM> /// <PARAM NAME = "ここ">更新条件:ID = 1 </ PARAM> /// <PARAM NAME =" insertData ">需要更新的数据</ PARAM> 公共の静的なint型のexecuteUpdate(文字列TBNAME、文字列の場合は、辞書<文字列、文字列> insertData) 文字列kvStr = ""; //键值对拼接字符串(同上@ ID =) 一覧<SQLiteParameter> PARAM =新しいリスト<SQLiteParameter>(); foreachの(insertData.Keysの文字列キー) { kvStr + = String.Formatの( "{0} {1} = @ {2}"、ポイント、キー、キー)。 param.Add(新SQLiteParameter( "@" +キー、insertData [キー])); ポイント= ""; } 文字列のSQL = String.Formatの( "UPDATEが'{0}' {1} {2} WHERE SET"、TBNAME、kvStr)。 返すのExecuteNonQuery(SQL、param.ToArray()); } ///查询 /// 20180723 /// </要約> /// < /// <PARAM NAME = "PARAM"> SQL参数</ PARAM> /// <戻る>首行首列</戻り> パブリック静的データテーブルGetDataTable(文字列SQL) { 試みます { 使用(SQLiteConnectionコン=新しいSQLiteConnection(STR)) { 使用(SQLiteCommand CMD =新しいSQLiteCommand(SQL、CON)) { con.Open()。 SQLiteDataAdapter広告=新しいSQLiteDataAdapter(CMD); DataTableのTB =新しいDataTableを(); ad.Fill(TB)。 con.Close(); TBを返します。 } } } キャッチ(例外例) { MessageBox.Show(ex.Message)。 ヌルを返します。 } } } }
テスト:
// .........一つの値を参照 MessageBox.Show( "" + SqliteHelper.ExecuteScalar( "UID <> ''"のメンバーからUIDを選択します)); // SQL構文作成を参照 のDataTable tbは= SqliteHelper.GetDataTable( "sqlite_master SELECT * FROMどこ名= 'メンバー'"); MessageBox.Show( "" + tb.Rows [0] [ "SQL"])。 //あるいは: //文字列の構文= "" + SqliteHelper.ExecuteScalar( "sqlite_masterからSQLを選択する場所名= 'メンバー'"); //MessageBox.Show(syntax); 列は、テーブルのメンバーが中に存在するかどうか//見ます BOOL hasCol = int.Parse( "" + SqliteHelper.ExecuteScalar( "SELECT COUNT(名前)ここで、名前は= 'メンバーsqlite_masterから { //カラム追加:列列名列型ADD TABLEテーブル名をALTER SqliteHelper.ExecuteScalarを( "テーブル部材がCOLUMN sendAccountのVARCHAR(20)を追加変更")。 //テーブルの学生が列名//该行在SQLiteの中不能用、SQLiteの不支持ドロップドロップ変更 テーブルのメンバーがsendAccount33"ドロップ//SqliteHelper.ExecuteScalar("alterを)。 } が存在する場合は、テーブルを削除// 文字列s =「」+ SqliteHelper.ExecuteScalarは(「members2が存在する場合、」テーブルを削除)。 MessageBox.Show(S);
参考ます。https://blog.csdn.net/wuyou1336/article/details/53770799