basic test, fix

main
syneffort 2 years ago
parent 52eb1e7df7
commit 436778609d
  1. 6
      MSSQLServer_Console/MSSQLServer_Console.sln
  2. 66
      MSSQLServer_Console/MSSQLServer_Console/Program.cs
  3. 134
      MSSQLServer_Console/PSqlSeverWrapper/PSqlServer.cs

@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSSQLServer_Console", "MSSQ
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PSqlServerWrapper", "PSqlSeverWrapper\PSqlServerWrapper.csproj", "{34E74A48-F0B4-4F7F-9827-11AA4E0052D0}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PSqlServerWrapper", "PSqlSeverWrapper\PSqlServerWrapper.csproj", "{34E74A48-F0B4-4F7F-9827-11AA4E0052D0}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSSQLServer_Form", "MSSQLServer_Form\MSSQLServer_Form.csproj", "{ECBD649D-C7BE-4B59-A75C-CF6B00F5CAE5}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -21,6 +23,10 @@ Global
{34E74A48-F0B4-4F7F-9827-11AA4E0052D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {34E74A48-F0B4-4F7F-9827-11AA4E0052D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34E74A48-F0B4-4F7F-9827-11AA4E0052D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {34E74A48-F0B4-4F7F-9827-11AA4E0052D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34E74A48-F0B4-4F7F-9827-11AA4E0052D0}.Release|Any CPU.Build.0 = Release|Any CPU {34E74A48-F0B4-4F7F-9827-11AA4E0052D0}.Release|Any CPU.Build.0 = Release|Any CPU
{ECBD649D-C7BE-4B59-A75C-CF6B00F5CAE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ECBD649D-C7BE-4B59-A75C-CF6B00F5CAE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ECBD649D-C7BE-4B59-A75C-CF6B00F5CAE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ECBD649D-C7BE-4B59-A75C-CF6B00F5CAE5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

@ -1,7 +1,9 @@
using PSqlSeverWrapper; using PSqlSeverWrapper;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -10,6 +12,8 @@ namespace MSSQLServer_Console
{ {
class Program class Program
{ {
static Stopwatch watch = new Stopwatch();
static void Main(string[] args) static void Main(string[] args)
{ {
PSqlServer.ServerName = "peacecloud.synology.me,21433"; PSqlServer.ServerName = "peacecloud.synology.me,21433";
@ -26,6 +30,26 @@ namespace MSSQLServer_Console
//Console.WriteLine("table create."); //Console.WriteLine("table create.");
using (SqlConnection conn = PSqlServer.Connection)
{
conn.Open();
string query = "SELECT * FROM member;";
SqlDataAdapter adapter = PSqlServer.GetAdapterSelectQuery(conn, query);
DataTable dt = new DataTable();
adapter.Fill(dt);
Console.WriteLine($"Row: {dt.Rows.Count}");
foreach (DataRow row in dt.Rows)
{
row.Delete();
}
adapter.Update(dt);
Console.WriteLine($"Rows are cleared");
}
Random rnd = new Random(); Random rnd = new Random();
//using (SqlConnection conn = PSqlServer.Connection) //using (SqlConnection conn = PSqlServer.Connection)
//{ //{
@ -42,18 +66,42 @@ namespace MSSQLServer_Console
// conn.Close(); // conn.Close();
//} //}
string[] queries = new string[2000]; //watch.Restart();
for (int i = 0; i < 2000; i++)
{ //string[] queries = new string[2000];
string guid = Guid.NewGuid().ToString(); //for (int i = 0; i < 2000; i++)
int age = rnd.Next(1, 100); //{
string name = $"Robo#{i + 1}"; // string guid = Guid.NewGuid().ToString();
queries[i] = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; // int age = rnd.Next(1, 100);
} // string name = $"Robo#{i + 1}";
// queries[i] = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')";
//}
PSqlServer.ExecuteQuery(queries); //watch.Restart();
//PSqlServer.ExecuteQuery(queries);
//Debug.WriteLine($"Case1: {watch.ElapsedMilliseconds}ms");
//watch.Restart();
//DataTable table = new DataTable();
//table.Columns.AddRange(new DataColumn[] { new DataColumn("name", typeof(string)), new DataColumn("age", typeof(int)), new DataColumn("guid", typeof(string)) });
//for (int i = 0; i < 2000; i++)
//{
// string guid = Guid.NewGuid().ToString();
// int age = rnd.Next(1, 100);
// string name = $"Robo#{i + 1}";
// DataRow dataRow = table.NewRow();
// dataRow["name"] = name;
// dataRow["age"] = age;
// dataRow["guid"] = guid;
// table.Rows.Add(dataRow);
//}
//PSqlServer.BulkCopy("member", table);
//Debug.WriteLine($"Case2: {watch.ElapsedMilliseconds}ms");
Console.WriteLine("finish"); Console.WriteLine("finish");
Console.ReadKey();
} }
} }
} }

@ -31,136 +31,132 @@ namespace PSqlSeverWrapper
if (!CheckBasicInfo()) if (!CheckBasicInfo())
throw new ArgumentException("Invalid connection info"); throw new ArgumentException("Invalid connection info");
try
{
return new SqlConnection(ConnString); return new SqlConnection(ConnString);
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
}
} }
} }
public static void ExecuteQuery(string query) public static void ExecuteQuery(string query)
{ {
try
{
using (SqlConnection conn = Connection) using (SqlConnection conn = Connection)
{ {
conn.Open();
SqlCommand command = new SqlCommand(query, conn); SqlCommand command = new SqlCommand(query, conn);
conn.Open();
command.ExecuteNonQuery(); command.ExecuteNonQuery();
Connection.Close(); conn.Close();
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
} }
} }
public static void ExecuteQuery(SqlConnection openedConn, string query) public static void ExecuteQuery(SqlConnection openedConn, string query)
{
try
{ {
SqlCommand command = new SqlCommand(query, openedConn); SqlCommand command = new SqlCommand(query, openedConn);
command.ExecuteNonQuery(); command.ExecuteNonQuery();
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
}
} }
public static void ExecuteQueryAsync(SqlConnection openedConn, string query) public static void ExecuteQueryAsync(SqlConnection openedConn, string query)
{
try
{ {
SqlCommand command = new SqlCommand(query, openedConn); SqlCommand command = new SqlCommand(query, openedConn);
command.ExecuteNonQueryAsync(); command.ExecuteNonQueryAsync();
} }
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
}
}
public static void ExecuteQuery(string[] queries) public static void ExecuteQuery(string[] queries)
{
try
{ {
using (SqlConnection conn = Connection) using (SqlConnection conn = Connection)
{ {
conn.Open(); conn.Open();
ExecuteQuery(conn, "BEGIN TRAN;"); SqlTransaction trans = conn.BeginTransaction();
try
{
for (int i = 0; i < queries.Length; i++) for (int i = 0; i < queries.Length; i++)
{ {
SqlCommand command = new SqlCommand(queries[i], conn); SqlCommand command = new SqlCommand(queries[i], conn);
command.Transaction = trans;
command.ExecuteNonQuery(); command.ExecuteNonQuery();
} }
ExecuteQuery(conn, "COMMIT TRAN;"); trans.Commit();
Connection.Close();
}
} }
catch (Exception ex) catch (Exception ex)
{ {
Debug.WriteLine(ex.ToString()); Debug.WriteLine(ex);
throw; trans.Rollback();
}
conn.Close();
} }
} }
public static void ExecuteQueryAsync(string query) public static void BulkCopy(string tableName, DataTable table, string[] dbColumnMap = null)
{ {
try using (SqlConnection conn = Connection)
{
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(conn);
sqlBulkCopy.DestinationTableName = tableName;
if (dbColumnMap != null && table.Columns.Count == dbColumnMap.Length)
{
for (int i = 0; i < table.Columns.Count; i++)
{
string colName = table.Columns[i].ColumnName;
sqlBulkCopy.ColumnMappings.Add(colName, dbColumnMap[i]);
}
}
conn.Open();
sqlBulkCopy.WriteToServer(table);
conn.Close();
}
}
public static void BulkCopyAsync(string tableName, DataTable table, string[] dbColumnMap = null)
{ {
using (SqlConnection conn = Connection) using (SqlConnection conn = Connection)
{ {
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(conn);
sqlBulkCopy.DestinationTableName = tableName;
if (dbColumnMap != null && table.Columns.Count == dbColumnMap.Length)
{
for (int i = 0; i < table.Columns.Count; i++)
{
string colName = table.Columns[i].ColumnName;
sqlBulkCopy.ColumnMappings.Add(colName, dbColumnMap[i]);
}
}
conn.Open(); conn.Open();
SqlCommand command = new SqlCommand(query, conn); sqlBulkCopy.WriteToServerAsync(table);
command.ExecuteNonQueryAsync(); conn.Close();
Connection.Close();
} }
} }
catch (Exception ex)
public static void ExecuteQueryAsync(string query)
{
using (SqlConnection conn = Connection)
{ {
Debug.WriteLine(ex.ToString()); SqlCommand command = new SqlCommand(query, conn);
throw;
conn.Open();
command.ExecuteNonQueryAsync();
conn.Close();
} }
} }
public static DataSet ExecuteSelectQuery(string query) public static DataSet ExecuteSelectQuery(string query)
{
try
{ {
using (SqlConnection conn = Connection) using (SqlConnection conn = Connection)
{ {
SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
DataSet dataSet = new DataSet(); DataSet dataSet = new DataSet();
conn.Open(); conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
adapter.Fill(dataSet); adapter.Fill(dataSet);
Connection.Close(); conn.Close();
return dataSet; return dataSet;
} }
} }
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
}
}
public static DataSet ExecuteSelectQuery(SqlConnection openedConn, string query) public static DataSet ExecuteSelectQuery(SqlConnection openedConn, string query)
{
try
{ {
DataSet dataSet = new DataSet(); DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(query, openedConn); SqlDataAdapter adapter = new SqlDataAdapter(query, openedConn);
@ -168,16 +164,8 @@ namespace PSqlSeverWrapper
return dataSet; return dataSet;
} }
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
}
}
public static SqlDataAdapter GetAdapterSelectQuery(SqlConnection openedConn, string query, bool withCommandBuilder = true) public static SqlDataAdapter GetAdapterSelectQuery(SqlConnection openedConn, string query, bool withCommandBuilder = true)
{
try
{ {
SqlDataAdapter adapter = new SqlDataAdapter(query, openedConn); SqlDataAdapter adapter = new SqlDataAdapter(query, openedConn);
if (withCommandBuilder) if (withCommandBuilder)
@ -190,12 +178,6 @@ namespace PSqlSeverWrapper
return adapter; return adapter;
} }
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
throw;
}
}
private static bool CheckBasicInfo() private static bool CheckBasicInfo()
{ {

Loading…
Cancel
Save