Last active
March 24, 2017 10:14
-
-
Save kungfux/b72b014547ccd0383bfd7543601d6a6f to your computer and use it in GitHub Desktop.
XDatabase usage examples
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // https://github.com/kungfux/xdatabase | |
| using System; | |
| using XDatabase; | |
| namespace Examples | |
| { | |
| public class Test | |
| { | |
| private const string _connectionString = "Data Source=db.sqlite;"; | |
| // Create an instance that points to a proper database type | |
| public void Init() | |
| { | |
| var xQuery1 = new XQuerySqlite(); | |
| var xQuery2 = new XQueryMySql(); | |
| var xQuery3 = new XQueryOleDb(); | |
| } | |
| // Select data as Table, Column, Row or a single Cell | |
| public void SelectData() | |
| { | |
| var xQuery = new XQuerySqlite(_connectionString); | |
| var selectTable = xQuery.SelectTable("select * from table;"); | |
| var selectColumn = xQuery.SelectColumn("select username from users;"); | |
| var selectRow = xQuery.SelectRow("select * from users limit 1;"); | |
| var selectCellAsString = xQuery.SelectCellAs<string>("select username from users where login='admin';"); | |
| // Administrator | |
| var selectCellAsNum = xQuery.SelectCellAs<long>("select failedAttempts from users where login='admin';"); | |
| // 3 | |
| var selectCellAsDouble = xQuery.SelectCellAs<double>("select weight from users where login='admin';"); | |
| // 1.23 | |
| } | |
| // Use arguments in sql | |
| public void Arguments() | |
| { | |
| var xQuery = new XQuerySqlite(_connectionString); | |
| var result = xQuery.SelectTable("select * from users where login=@login;", | |
| xQuery.AddParameter("@login", "admin")); | |
| } | |
| // Create, insert, update and delete | |
| public void ChangeData() | |
| { | |
| var xQuery = new XQuerySqlite(_connectionString); | |
| xQuery.Create("create table users (id int primary key autoincrement, login varchar(255));"); | |
| xQuery.Insert("insert into users (login) values ('admin');"); | |
| xQuery.Update("update users set login='admin' where login='admina';"); | |
| xQuery.Delete("delete from users where login='admin';"); | |
| } | |
| // Check result of operation | |
| public void Result() | |
| { | |
| var xQuery = new XQuerySqlite(_connectionString); | |
| var result = xQuery.Update("update users set username=@username where login=@login", | |
| xQuery.AddParameter("@username", "Administrator"), | |
| xQuery.AddParameter("@login", "admin") | |
| ); | |
| if (result >= XResult.ChangesApplied) | |
| Console.WriteLine("Updated successfully!"); | |
| } | |
| // Transactions | |
| public void Transaction() | |
| { | |
| var xQuery = new XQuerySqlite(_connectionString); | |
| var isInterrupted = false; | |
| xQuery.BeginTransaction(); | |
| for (var i = 0; i < 100; i++) | |
| { | |
| var result = xQuery.Insert($"insert into users (username) values ('test-{i}');"); | |
| if (!result) | |
| { | |
| isInterrupted = false; | |
| xQuery.RollbackTransaction(); | |
| break; | |
| } | |
| } | |
| if (!isInterrupted) | |
| { | |
| xQuery.CommitTransaction(); | |
| } | |
| } | |
| // Work with binary data and images | |
| public void Binary() | |
| { | |
| var xQuery = new XQuerySqlite(_connectionString); | |
| // insert binary data into a cell | |
| var binData = new byte[] { 1, 0, 1, 1, 0, 1, 1, 0 }; | |
| xQuery.InsertBinaryIntoCell(binData, "update users set photo=@photo where login='admin';", "@photo"); | |
| // select binary data from cell | |
| var binDataNew = xQuery.SelectCellAs<byte[]>("select photo from users where login='admin';"); | |
| // insert file into a cell | |
| var image = "C:\\photo.png"; | |
| xQuery.InsertFileIntoCell(image, "update users set document=@doc where login='admin';", "@doc"); | |
| // select image from database | |
| var imageNew = xQuery.SelectBinaryAsImage("select photo from users where login='admin';"); | |
| // select binary and save | |
| xQuery.SelectBinaryAndSave("D:\image.png", "select photo from users where login='admin';"); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment