C# 用C连接数据库的好方法

C# 用C连接数据库的好方法,c#,mysql,database,database-connection,connection-string,C#,Mysql,Database,Database Connection,Connection String,大家好 我是编程新手,我正在像一个简单的程序一样构建。只需单击按钮并显示结果。这就是我连接数据库的方式。我使用了MySQL.data.dll并将其添加为参考 string connString = "Server=localhost;database=super;uid=root;password=root"; MySqlConnection conn = new MySqlConnection(connString); MySqlCommand command = conn.CreateCom

大家好

我是编程新手,我正在像一个简单的程序一样构建。只需单击按钮并显示结果。这就是我连接数据库的方式。我使用了MySQL.data.dll并将其添加为参考

string connString = "Server=localhost;database=super;uid=root;password=root";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT * FROM people WHERE idPeople=1";
conn.Open();
// get data
conn.Close()

还有什么其他方法可以连接到数据库,比如一个好的实践,也许是更好的方法。如果你能帮助我提高编程水平,那就太好了。抱歉,如果你觉得这个问题很愚蠢。谢谢

一般来说,您将使用ORM之类的or。

这是正确的,但您缺少几个要点:

您没有正确关闭连接。如果您的sql语句抛出异常,您将永远无法到达.Close调用。根据您的数据库类型及其配置方式,这可能会导致数据库服务器的可用连接达到最大,并有效地将自己锁定在自己的数据库之外。 idPeople=1中的1来自哪里?构建包含参数数据的查询有正确的方法,也有错误的方法,如1。确保你用正确的方法做。 选择*被认为是坏形式。。。最好指定列列表。 下面是一个解决所有这些问题的示例:

//often this will loaded from a config file
string connString = "Server=localhost;database=super;uid=root;password=root";

string sql = "SELECT <column list> FROM people WHERE idPeople= @idPeople";
using (var cn = new MySqlConnection(connString))
uinsg (var cmd = new MySqlCommand(sql, cn))
{
    cmd.Parameters.Add("@idPeople", MySqlDbType.Int32).Value = 1;

    conn.Open();
    //get data
}

你会看到一些人告诉你使用ORM,比如NHibernate、linq到sql、实体框架等等。我倾向于认为手工编码和调优的sql仍然有一席之地,我不太注意它们。不过,像这样的轻量级数据访问框架可能会有所帮助。这些工具不仅可以从我刚刚编写的代码中抽象出很多样板代码,还可以从业务和传输对象层中抽象出很多样板代码,并且仍然可以让您编写所需的sql。

基本上,如果您考虑使用c连接数据库,有三种类型

已连接-是通过打开和关闭连接来访问数据库的一种方法。也就是说,您直接通过SQL命令访问数据库。 断开连接-例如,使用存储过程而不是使用SQL命令直接访问数据库。 实体框架-是代表您连接数据库的框架。您只需要配置一次,通过类对象的可访问性非常灵活。这个框架在使用LINQ时也是最好的。 我建议您阅读Andrew Troelsen的《带Pro C 2010和.NET 4平台第五版》一书。你可以得到最新的版本


还有另一个名为NHibernate的框架,它几乎类似于Java中的Hibernate

非常感谢您的支持!谢谢这取决于你的决定。我只是想知道连接到数据库的最佳方法,以及使用数据库构建系统的一些技术。谢谢你的链接。我一定会读的!非常感谢。非常感谢你!我没想过那样。我想我还需要一些阅读。