数据库的操作
多个数据库连接,通过不同的连接字符串进行连接
public static class _DbContext
{
//private static DbContextOptions<IgbomContext> _contextOptions;
public static IgbomContext igbomContext(string mySqlConnectionString)
{
DbContextOptions<IgbomContext> _contextOptions = new DbContextOptionsBuilder<IgbomContext>()
.UseMySql(mySqlConnectionString)
.Options;
var _igbomContext = new IgbomContext(_contextOptions);
return _igbomContext;
}
public static ModelInfoContext ModelInfoContext(string mySqlConnectionString)
{
DbContextOptions<ModelInfoContext> _contextOptions = new DbContextOptionsBuilder<ModelInfoContext>()
.UseMySql(mySqlConnectionString)
.Options;
var _modelInfoContext = new ModelInfoContext(_contextOptions);
return _modelInfoContext;
}
public static NodeContext NodeContext(string mySqlConnectionString)
{
DbContextOptions<NodeContext> _contextOptions = new DbContextOptionsBuilder<NodeContext>()
.UseMySql(mySqlConnectionString)
.Options;
var _nodeContext = new NodeContext(_contextOptions);
return _nodeContext;
}
public static NewIgbomContext NewIgbomContext(string mySqlConnectionString)
{
DbContextOptions<NewIgbomContext> _contextOptions = new DbContextOptionsBuilder<NewIgbomContext>()
.UseMySql(mySqlConnectionString)
.Options;
var _newIgbomContext = new NewIgbomContext(_contextOptions);
return _newIgbomContext;
}
}
原生的数据库连接
/// <summary>
/// 通用数据库类MySQL
/// </summary>
public class Class_mysql_conn
{
//public static string ConnStr = @"server=数据库;uid=帐号;pwd=密码;database=数据库;charset=utf8";
public static string ConnStr = @"server=139.224.43.134:3306;uid=galp;pwd=galp123456;database=igbom;charset=utf8";
//打开数据库链接
public static MySqlConnection Open_Conn(string ConnStr)
{
MySqlConnection Conn = new MySqlConnection(ConnStr);
Conn.Open();
return Conn;
}
//关闭数据库链接
public static void Close_Conn(MySqlConnection Conn)
{
if (Conn != null)
{
Conn.Close();
Conn.Dispose();
}
GC.Collect();
}
//运行MySql语句
public static int Run_SQL(string SQL, string ConnStr)
{
MySqlConnection Conn = Open_Conn(ConnStr);
MySqlCommand Cmd = Create_Cmd(SQL, Conn);
try
{
int result_count = Cmd.ExecuteNonQuery();
Close_Conn(Conn);
return result_count;
}
catch (Exception e)
{
Close_Conn(Conn);
return 0;
}
}
// 生成Command对象
public static MySqlCommand Create_Cmd(string SQL, MySqlConnection Conn)
{
MySqlCommand Cmd = new MySqlCommand(SQL, Conn);
return Cmd;
}
// 运行MySql语句返回 DataTable
public static DataTable Get_DataTable(string SQL, string ConnStr, string Table_name)
{
MySqlDataAdapter Da = Get_Adapter(SQL, ConnStr);
DataTable dt = new DataTable(Table_name);
Da.Fill(dt);
return dt;
}
// 运行MySql语句返回 MySqlDataReader对象
public static MySqlDataReader Get_Reader(string SQL, string ConnStr)
{
MySqlConnection Conn = Open_Conn(ConnStr);
MySqlCommand Cmd = Create_Cmd(SQL, Conn);
MySqlDataReader Dr;
try
{
Dr = Cmd.ExecuteReader(CommandBehavior.Default);
}
catch
{
throw new Exception(SQL);
}
Close_Conn(Conn);
return Dr;
}
// 运行MySql语句返回 MySqlDataAdapter对象
public static MySqlDataAdapter Get_Adapter(string SQL, string ConnStr)
{
MySqlConnection Conn = Open_Conn(ConnStr);
MySqlDataAdapter Da = new MySqlDataAdapter(SQL, Conn);
return Da;
}
// 运行MySql语句,返回DataSet对象
public static DataSet Get_DataSet(string SQL, string ConnStr, DataSet Ds)
{
MySqlDataAdapter Da = Get_Adapter(SQL, ConnStr);
try
{
Da.Fill(Ds);
}
catch (Exception Err)
{
throw Err;
}
return Ds;
}
// 运行MySql语句,返回DataSet对象
public static DataSet Get_DataSet(string SQL, string ConnStr, DataSet Ds, string tablename)
{
MySqlDataAdapter Da = Get_Adapter(SQL, ConnStr);
try
{
Da.Fill(Ds, tablename);
}
catch (Exception Ex)
{
throw Ex;
}
return Ds;
}
// 运行MySql语句,返回DataSet对象,将数据进行了分页
public static DataSet Get_DataSet(string SQL, string ConnStr, DataSet Ds, int StartIndex, int PageSize, string tablename)
{
MySqlConnection Conn = Open_Conn(ConnStr);
MySqlDataAdapter Da = Get_Adapter(SQL, ConnStr);
try
{
Da.Fill(Ds, StartIndex, PageSize, tablename);
}
catch (Exception Ex)
{
throw Ex;
}
Close_Conn(Conn);
return Ds;
}
// 返回MySql语句执行结果的第一行第一列
public static string Get_Row1_Col1_Value(string SQL, string ConnStr)
{
MySqlConnection Conn = Open_Conn(ConnStr);
string result;
MySqlDataReader Dr;
try
{
Dr = Create_Cmd(SQL, Conn).ExecuteReader();
if (Dr.Read())
{
result = Dr[0].ToString();
Dr.Close();
}
else
{
result = "";
Dr.Close();
}
}
catch
{
throw new Exception(SQL);
}
Close_Conn(Conn);
return result;
}
}
使用:
/////批量插入造数据:3个建筑,3*10个楼层,3*10*1000个墙,3*10*1000*2个窗
/// <summary>
/// test
/// </summary>
/// <returns></returns>
[HttpGet("insertData")]
public IActionResult insertData()
{
string ConnStr = @"Server = 192.168.0.31; database = modelinfo; uid = user1; pwd = 123456;sslmode=none";
for (int i = 0; i < 3; i++)
{
int buildingId = i + 1;
string sqlbuilding = "INSERT INTO `building` (`id`,`name` ,`province`,`city` ,`project_id` ,`longitude` ,`latitude`,`number_of_people`, `area` ,`building_type_id` ,`image` ,`add`,`years`,`num_floors`,`building_structure`)" +
" VALUES (" + buildingId + ",'建筑" + buildingId + "', '上海', '上海', '1', '222', '222', '1111', '1231', '1','','某某路12号','251','555','10')";
Class_mysql_conn.Run_SQL(sqlbuilding, ConnStr);
for (int j = 0; j < 10; j++)
{
int floorId = i * 10 + (j + 1);
string sqlfloor = "INSERT INTO `floor` (`id`,`name` ,`number_of_people`, `area` ,`building_id` ,`image`)" +
" VALUES (" + floorId + ",'楼层" + floorId + "', '222', '222', " + i + ", '1231')";
Class_mysql_conn.Run_SQL(sqlfloor, ConnStr);
for (int n = 0; n < 1000; n++)
{
Random rd = new Random();
int wallId = (i * 10 + j) * 1000 + (n + 1);
string sqlwall = "INSERT INTO `wall` (`id`,`name` ,`height`,`width` ,`area` ,`drs` ,`consistency`,`project_id`, `building_id` ,`floor_id` )" +
" VALUES (" + wallId + ",'墙" + wallId + "', " + (rd.Next(1, 100) * 0.11 + n * rd.Next(100) * 0.01) + ", " + (rd.Next(1, 100) * 0.11 + n * rd.Next(100) * 0.01) + ", " + (rd.Next(1, 100) * 0.11 + n * rd.Next(100) * 0.01) + ", " + (rd.Next(1, 100) * 0.11 + n * rd.Next(100) * 0.01) + "," + (rd.Next(1, 100) * 0.11 + n * rd.Next(100) * 0.01) + ",1," + buildingId + "," + floorId + ")";
Class_mysql_conn.Run_SQL(sqlwall, ConnStr);
for (int win = 0; win < 2; win++)
{
int windowId = ((i * 10 + j) * 1000 + n) * 2 + (win + 1);
string sqlwindow = "INSERT INTO `window` (`id`,`name` ,`height`,`width` ,`area` ,`drs` ,`consistency`,`project_id`, `building_id` ,`floor_id`,`wall_id`)" +
" VALUES (" + windowId + ",'窗" + windowId + "'," + (rd.Next(1, 100) * 0.11 + n * win * rd.Next(100) * 0.01) + ", " + (rd.Next(1, 100) * 0.11 + n * win * rd.Next(100) * 0.01) + ", " + (rd.Next(1, 100) * 0.11 + n * win * rd.Next(100) * 0.01) + ", " + (rd.Next(1, 100) * 0.11 + n * win * rd.Next(100) * 0.01) + "," + (rd.Next(1, 100) * 0.11 + n * win * rd.Next(100) * 0.01) + ",1," + buildingId + "," + floorId + "," + wallId + ")";
Class_mysql_conn.Run_SQL(sqlwindow, ConnStr);
}
}
}
}
return Content("ok");
}
}

浙公网安备 33010602011771号