在过去的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的连接)
答案 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中。