C#如何连接数据库

环境是 vs2008+sql2005,C# 毫无思路,求大神指点一二,小妹谢过了!

阅读 3.6k
3 个回答

ADO.Net是一套非常好的数据库访问接口,只是用起来有点啰嗦,所以到处都流传着 DbHelper 的身影……不过建议你还是去仔细了解一下 ADO.Net。

最常用的接口(抽象类)包括

  • DbConnection,用于连接数据库,对应 SQL Server 的实现是 SqlConnection
  • DbCommand,处理需要执行的SQL或存储过程命令封装,对应 SqlCommand
  • DbParameter,用于处理命令的参数,对应 SqlParameter
  • DbDataAdapter,用于处理一些常用的数据库操作,对应 SqlDataAdapter`
  • DbDataReader,用于读取取出来的数据,对应 SqlDataReader
  • DbTransaction,用于事务处理,对应 SqlTransaction

另外还有几个数据结构

  • DataTable,保存 select 语句选出来的记录集
  • DataRowDataTable 中的一行数据(一条记录)
  • DataSet,可以保存多个 DataTable,适用于一次执行多个 select 语句的情况

下面是MSDN上的一个示例

csusing System;
using System.Data;
using System.Data.SqlClient;

class Program {
    static void Main() {
        string connectionString =
            "Data Source=(local);Initial Catalog=Northwind;" + "Integrated Security=true";

        // Provide the query string with a parameter placeholder.
        string queryString =
            "SELECT ProductID, UnitPrice, ProductName from dbo.products " + "WHERE UnitPrice > @pricePoint " + "ORDER BY UnitPrice DESC;";

        // Specify the parameter value.
        int paramValue = 5;

        // Create and open the connection in a using block. This
        // ensures that all resources will be closed and disposed
        // when the code exits.
        using(SqlConnection connection =
            new SqlConnection(connectionString)) {
            // Create the Command and Parameter objects.
            SqlCommand command = new SqlCommand(queryString, connection);
            command.Parameters.AddWithValue("@pricePoint", paramValue);

            // Open the connection in a try/catch block. 
            // Create and execute the DataReader, writing the result
            // set to the console window.
            try {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read()) {
                    Console.WriteLine("\t{0}\t{1}\t{2}",
                        reader[0], reader[1], reader[2]);
                }
                reader.Close();
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }
}

更多的资料可以在百度搜索 ado.net

EnetityFramework 或 dapper ,百度一下ORM,一小时入门,之后三观颠覆

logo
101 新手上路
子站问答
访问
宣传栏