You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
usingSharpCoreDB.Client;// Connection string formatawaitusingvarconnection=newSharpCoreDBConnection("Server=localhost;Port=5001;Database=appdb;Username=admin;Password=secret;SslMode=Required");awaitconnection.OpenAsync();// Connection is now authenticated with a gRPC sessionConsole.WriteLine($"Session: {connection.SessionId}");Console.WriteLine($"Server version: {connection.ServerVersion}");
Connection String Parameters
Parameter
Default
Description
Server
localhost
Server hostname or IP
Port
5001
gRPC port
Database
master
Target database name
Username
anonymous
Authentication username
Password
—
Authentication password
SslMode
Required
TLS mode: Required (always)
Timeout
30000
Connection timeout (ms)
Queries (SELECT)
Basic Query
usingvarcmd=connection.CreateCommand();cmd.CommandText="SELECT * FROM users WHERE age > 25";awaitusingvarreader=awaitcmd.ExecuteReaderAsync();while(awaitreader.ReadAsync()){varid=reader.GetInt32(0);varname=reader.GetString(1);varage=reader.GetInt32(2);Console.WriteLine($" {id}: {name} ({age})");}
usingvarcmd=connection.CreateCommand();cmd.CommandText="SELECT COUNT(*) FROM users";varcount=awaitcmd.ExecuteScalarAsync();Console.WriteLine($"Total users: {count}");
Non-Query (INSERT / UPDATE / DELETE)
usingvarcmd=connection.CreateCommand();cmd.CommandText="INSERT INTO users VALUES (42, 'Eve', 'eve@example.com')";varaffected=awaitcmd.ExecuteNonQueryAsync();Console.WriteLine($"Rows affected: {affected}");
With Parameters
usingvarcmd=connection.CreateCommand();cmd.CommandText="INSERT INTO users VALUES (@id, @name, @email)";cmd.AddParameter("@id",42);cmd.AddParameter("@name","Eve");cmd.AddParameter("@email","eve@example.com");awaitcmd.ExecuteNonQueryAsync();
Transactions
// Begin transactionawaitusingvartx=awaitconnection.BeginTransactionAsync();try{usingvarcmd1=connection.CreateCommand();cmd1.CommandText="INSERT INTO orders VALUES (1, 'Widget', 10)";awaitcmd1.ExecuteNonQueryAsync();usingvarcmd2=connection.CreateCommand();cmd2.CommandText="UPDATE inventory SET stock = stock - 10 WHERE product = 'Widget'";awaitcmd2.ExecuteNonQueryAsync();// Commit both operationsawaittx.CommitAsync();}catch{// Automatic rollback on dispose if not committed// Or explicit: await tx.RollbackAsync();throw;}
Command Timeout
usingvarcmd=connection.CreateCommand();cmd.CommandText="SELECT * FROM large_table";cmd.CommandTimeout=60000;// 60 secondsawaitusingvarreader=awaitcmd.ExecuteReaderAsync();
Supported Parameter Types
C# Type
Protocol Type
Example
int, long
int64_value
cmd.AddParameter("@id", 42)
double, float
double_value
cmd.AddParameter("@price", 9.99)
string
string_value
cmd.AddParameter("@name", "Alice")
bool
bool_value
cmd.AddParameter("@active", true)
DateTime
timestamp_value
cmd.AddParameter("@created", DateTime.UtcNow)
Guid
guid_value
cmd.AddParameter("@id", Guid.NewGuid())
float[]
vector_value
cmd.AddParameter("@vec", new float[] { 0.1f, 0.2f })
usingSharpCoreDB.Client;// Connectawaitusingvarconn=newSharpCoreDBConnection("Server=localhost;Port=5001;Database=appdb;Username=admin;SslMode=Required");awaitconn.OpenAsync();// Create tableusingvarcreate=conn.CreateCommand();create.CommandText="CREATE TABLE IF NOT EXISTS products (id INTEGER, name TEXT, price REAL)";awaitcreate.ExecuteNonQueryAsync();// Batch insertstring[]inserts=["INSERT INTO products VALUES (1, 'Laptop', 999.99)","INSERT INTO products VALUES (2, 'Mouse', 29.99)","INSERT INTO products VALUES (3, 'Keyboard', 79.99)",];foreach(varsqlininserts){usingvarcmd=conn.CreateCommand();cmd.CommandText=sql;awaitcmd.ExecuteNonQueryAsync();}// Queryusingvarquery=conn.CreateCommand();query.CommandText="SELECT * FROM products WHERE price < 100";awaitusingvarreader=awaitquery.ExecuteReaderAsync();Console.WriteLine("Products under $100:");while(awaitreader.ReadAsync()){Console.WriteLine($" {reader["id"]}: {reader["name"]} - ${reader["price"]}");}// Countusingvarcount=conn.CreateCommand();count.CommandText="SELECT COUNT(*) FROM products";vartotal=awaitcount.ExecuteScalarAsync();Console.WriteLine($"\nTotal products: {total}");