ADO.net如何入手

时间:2010-08-30 12:46:00

标签: .net sql-server ado.net

在过去的3个小时里,我一直试图弄清楚ADO.NET是如何工作的,但没有成功。有人能指点我一个很棒的教程或类似的东西吗?我正在尝试从头开始构建一个数据库并在我的WPF程序中使用它。

我之前使用过JDBC和sqlite,但是我没有找到从0到DB的教程,我可以连接和查询。

感谢您的帮助。

我仍然需要一个从零构建数据库的好例子。 Northwind示例对我不起作用。这是我的代码和我得到的错误:

try
        {
            // step 1: create a SqlConnection object to connect to the
            // SQL Server Northwind database
            SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa");
            // step 2: create a SqlCommand object
            SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
            // step 3: set the CommandText property of the SqlCommand object to
            // a SQL SELECT statement that retrieves a row from the Customers table
            mySqlCommand.CommandText =
            "SELECT CustomerID, CompanyName, ContactName, Address " +
            "FROM Customers " +
            "WHERE CustomerID = ‘ALFKI’";
            // step 4: open the database connection using the
            // Open() method of the SqlConnection object
            mySqlConnection.Open();
            //DEVELOPING YOUR FIRST ADO.NET PROGRAM 5
            // step 5: create a SqlDataReader object and call the ExecuteReader()
            // method of the SqlCommand object to run the SELECT statement
            SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
            // step 6: read the row from the SqlDataReader object using
            // the Read() method
            mySqlDataReader.Read();
            // step 7: display the column values
            Console.WriteLine("mySqlDataReader[\"CustomerID\"] = " +
            mySqlDataReader["CustomerID"]);
            Console.WriteLine("mySqlDataReader[\"CompanyName\"] = " +
            mySqlDataReader["CompanyName"]);
            Console.WriteLine("mySqlDataReader[\"ContactName\"] = " +
            mySqlDataReader["ContactName"]);
            Console.WriteLine("mySqlDataReader[\"Address\"] = " +
            mySqlDataReader["Address"]);
            // step 8: close the SqlDataReader object using the Close() method
            mySqlDataReader.Close();
            // step 9: close the SqlConnection object using the Close() method
            mySqlConnection.Close();
        }
        catch (SqlException e)
        {
            Console.WriteLine("A SqlException was thrown");
            Console.WriteLine("Number = " + e.Number);
            Console.WriteLine("Message = " + e.Message);
            Console.WriteLine("StackTrace:\n" + e.StackTrace);
        }
    }
}

错误:

  

抛出了SqlException   数字= 2
  Message =建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

3 个答案:

答案 0 :(得分:1)

ADO.Net位于中间,所以我建议那不是你应该开始的。我建议先设计数据库。然后查看this文章,了解如何将列表控件绑定到数据库中的某些数据的简单教程。

如果您不想使用数据绑定,也可以使用SqlCommand等手动填充GUI。

here是另一篇更全面的文章,用于WPF中的数据绑定。

答案 1 :(得分:0)

有关ADO.NET的信息,请检查MSDN。通常,您需要具有要连接的数据库的DB服务器,而不是System.Data.SqlClient命名空间中的三个类:

简单访问的示例是:

string connectionString = "Data Source=.;Initial Catalog=TestDB;Integrated Security=SSPI";
string query = "SELECT * FROM dbo.TestTable"

using (var connection = new SqlConnection(connectionString))
{
  var command = new SqlCommand(query, connection);
  connection.Open();

  using (var reader = command.ExcecuteReader())
  {
    while (reader.Read())
    {
      Console.WriteLine(reader.GetString(0));
    }
  }
}

答案 2 :(得分:0)

问题在于您的连接字符串。我建议你改变这个:

        SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa");

到此:

        SqlConnection mySqlConnection = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");

如果您需要查找连接字符串,请转到http://www.ConnectionStrings.com。这是一个很棒的网站。

P.S。最佳做法是将连接字符串存储在app.config或web.config中。