大家好,小编又来啦 !
今天为大家分享的是关于c#控制台连接mysql数据库 ,用sql语句返回查询的数据
废话不多说,两种方法,直接开整!!!
一:
- 首先要下载两个NuGet包
2.下面是我封装的类,只可以用来返回查询结果,代码如下:
public class MysqlHelper
{
//这是我数据库的本地连接 server是ip,port端口,user:用户名,password:密码, database:你要查询的数据库
public static string Constring = "server=localhost;port=3306;user=root;password=123456; database=knowledge;";
public static DataTable ConnStr(string Sql)
{
//创建一个表格
DataTable dt = new DataTable();
try
{
//创建连接对象、连接数据库
//其中,Constring是数据连接字串,用来初始化Connection对象,说明如何连接数据库,
//当数据库连接完毕后,可以使用Open方法打开数据连接。完成数据库连接后,需创建一个新的Command对象,示例代码如下所示。
MySqlConnection conn = new MySqlConnection(Constring);
//打开通道,建立连接,可能出现异常,建议使用try catch语句
conn.Open();
//Command对象的构造函数的参数有两个,
//一个是需要执行的SQL语句,另一个是数据库连接对象。
//创建Command对象后,就可以执行SQL命令,执行后完成并关闭数据连接,示例代码如下所示。
MySqlCommand cmd = new MySqlCommand(Sql, conn);
//执行SQL命令
MySqlDataReader dr = cmd.ExecuteReader();
dt.Load(dr);
conn.Close(); //关闭连接
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
//返回表格
return dt;
}
}
3.调用方法
//想要执行的sql语句
string sql = $"SELECT * FROM mycobacterium";
DataTable? dataTable = MysqlHelper.ConnStr(sql);
Console.ReadLine();
注意:因为上边的封装类里边 我是用DataTable填充的数据,所以在 调方法的时候,也要用DataTable去接这个方法才可以
3.给大家看一下我的运行效果
二:
如果大家不喜欢上边的方法还可以用第二种
通过实例化Context 上下文
用Linq语句查询,但是前提 上边的两个NuGet包还是要下载的
上代码!!
1:
//想要执行的sql语句
//实例化上下文
KnowledgeContext _dbContext = new KnowledgeContext();
//要执行的sql语句
string sql = $"SELECT * FROM mycobacterium";
//数据
var data = _dbContext.Mycobacteria.FromSqlRaw(sql).ToList();
大家如果想问 我的上下文的Context 怎么来的 ,那得把数据库的表转化为实体到咱们的代码上,生成的Context,大家如果有需要可以看我主页的作品参考