.net core3.1连接GBase数据库的步骤
生活随笔
收集整理的這篇文章主要介紹了
.net core3.1连接GBase数据库的步骤
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、添加Gbase官方提供的dll文件 “GBase.Data.dll”的引用
添加完如下圖:
2、添加引用“Microsoft.Extensions.Configuration.Json”
3、添加連接字符串
{
"ConnectionStrings": {"DefaultConnectionGBase": "Server=21.19.12.8;Port=5258;Database=myDb;User Id=test;Password=test123456;SslMode=None;"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
4、添加數(shù)據(jù)庫的helper類
public class GbaseBaseHelper
{
private GBaseConnection conn = null;
private GBaseCommand cmd = null;
private GBaseDataReader sdr = null;
public GbaseBaseHelper()
{
string strConnectionString = ConfigHelper.GetSectionValue("ConnectionStrings:DefaultConnectionGBase");
conn = new GBaseConnection(strConnectionString);
}
private GBaseConnection GetConn()
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
catch (Exception ex)
{
throw ex;
}
return conn;
}
//關(guān)閉數(shù)據(jù)庫連接
private void OutConn()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
/// 執(zhí)行不帶參數(shù)的增刪改SQL語句或存儲(chǔ)過程
public int ExecuteNonQuery(string cmdText, CommandType ct)
{
int res;
try
{
cmd = new GBaseCommand(cmdText, GetConn());
cmd.CommandType = ct;
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
OutConn();
}
return res;
}
/// 執(zhí)行帶參數(shù)的增刪改SQL語句或存儲(chǔ)過程
public int ExecuteNonQuery(string cmdText, GBaseParameter[] paras, CommandType ct)
{
int res;
try
{
cmd = new GBaseCommand(cmdText, GetConn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
OutConn();
}
return res;
}
/// 執(zhí)行不帶參數(shù)的查詢SQL語句或存儲(chǔ)過程
public DataTable ExecuteQuery(string cmdText, CommandType ct)
{
DataTable dt = new DataTable();
using (cmd = new GBaseCommand(cmdText, GetConn()))
{
cmd.CommandType = ct;
cmd.CommandTimeout = 10 * 60;//10分鐘
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
}
}
/// 執(zhí)行帶參數(shù)的查詢SQL語句或存儲(chǔ)過程
public DataTable ExecuteQuery(string cmdText, List<DbParameter> paras, CommandType ct)
{
DataTable dt = new DataTable();
using (cmd = new GBaseCommand(cmdText, GetConn()))
{
cmd.CommandType = ct;
cmd.CommandTimeout = 10 * 60;//10分鐘
if (paras != null)
{
cmd.Parameters.AddRange(paras.ToArray());
}
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
}
}
public int ExecuteNonQueryByTransaction(List<string> lstSql)
{
int intResult = 0;
using (GBaseConnection conn = GetConn())
{
GBaseTransaction tran = null;
try
{
using (tran = conn.BeginTransaction())
{
if (lstSql != null && lstSql.Count > 0)
{
foreach (string sql in lstSql)
{
GBaseCommand cmd = new GBaseCommand(sql, conn);
intResult += cmd.ExecuteNonQuery();
}
}
tran.Commit();
}
}
catch (GBaseException ex)
{
if (tran != null) tran.Rollback();
throw ex;
}
}
return intResult;
}
}
備注:用到一個(gè)configHelper類
public static class ConfigHelper
{
private static IConfiguration _configuration;
static ConfigHelper()
{
//在當(dāng)前目錄或者根目錄中尋找appsettings.json文件
var fileName = "appsettings.json";
var directory = AppContext.BaseDirectory;
directory = directory.Replace("\", "/");
var filePath = $"{directory}/{fileName}";
if (!File.Exists(filePath))
{
var length = directory.IndexOf("/bin");
filePath = $"{directory.Substring(0, length)}/{fileName}";
}
var builder = new ConfigurationBuilder().AddJsonFile(filePath, false, true);
_configuration = builder.Build();
}
public static string GetSectionValue(string key)
{
return _configuration.GetSection(key).Value;
}
}
5、添加引用“System.Text.Encoding.CodePages”
添加完后在入口處添加
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
6、添加引用“System.Diagnostics.PerformanceCounter”
7、測(cè)試效果
DataTable result = new GbaseBaseHelper().ExecuteQuery("select TABLE_NAME, TABLE_COMMENT from information_schema.tables where TABLE_SCHEMA = '" + tableSchema + "'", CommandType.Text);
return result;
總結(jié)
以上是生活随笔為你收集整理的.net core3.1连接GBase数据库的步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Js+XML 操作
- 下一篇: [转] 英语、计算机、互联网与全球化