当前位置:
首页 >
.net core3.1连接GBase数据库的步骤
发布时间:2023/12/13
46
生活家
生活随笔
收集整理的这篇文章主要介绍了
.net core3.1连接GBase数据库的步骤
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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、添加数据库的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;
}
//关闭数据库连接
private void OutConn()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
/// 执行不带参数的增删改SQL语句或存储过程
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;
}
/// 执行带参数的增删改SQL语句或存储过程
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;
}
/// 执行不带参数的查询SQL语句或存储过程
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;
}
}
/// 执行带参数的查询SQL语句或存储过程
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;
}
}
备注:用到一个configHelper类
public static class ConfigHelper
{
private static IConfiguration _configuration;
static ConfigHelper()
{
//在当前目录或者根目录中寻找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、测试效果
DataTable result = new GbaseBaseHelper().ExecuteQuery("select TABLE_NAME, TABLE_COMMENT from information_schema.tables where TABLE_SCHEMA = '" + tableSchema + "'", CommandType.Text);
return result;
总结
以上是生活随笔为你收集整理的.net core3.1连接GBase数据库的步骤的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Js+XML 操作
- 下一篇: 荒野的召唤-育空河谷地图