与C#数据库交互简介

到目前为止,在我的编程生涯中(两年)我没有太多的数据库经验,但我现在工作的公司广泛使用数据库作为他们的产品,我感觉落后于曲线。

所以我想知道如何最好地开始学习与C#的数据库交互。 我读过LINQ-to-SQL和ADO.net。 这些是正确的技术吗?

我从哪里开始?

编辑:感谢所有的回复。 有很多好的 – 我很难选择一个作为“答案”。 这对我帮助很大!

我建议你花时间学习Microsoft SQL Server本身, 企业库中的 数据访问应用程序块ADO.NETentity framework

学习SQL Server的入口点在这里 – > SQL Server开发人员中心
学习ADO.NET的入门点在这里 – >在MSDN 学习ADO.NET

首先,为了更好地理解ADO.NET是什么,请查看以下链接:

  • 维基百科上的ADO.NET
  • 维基百科上的ADO.NETentity framework

了解如何在不使用任何框架和ORM工具的情况下将C#中的直接查询编写到SQL Server,然后继续学习ADO.NET系列中的更多高级技术。

另见

  • MSDN上的数据访问应用程序块
  • MSDN上的ADO.NETentity framework概述
  • 学习ADO.NETentity framework (“我如何”video等)
  • ASP.NET的video,截屏video,教程
  • Microsoft SQL Server 2008:ADO.NETentity framework

您可能还想下载LINQPad ,这是使用LINQ的完美工具。

另外我建议订阅ADO.NET相关的RSS feed

  • MSDN上的ADO.NET团队博客

还要检查CodePlex.com上现有的开源项目,这些项目使用这些技术并深入了解其源代码。

关于这个主题的好书

  • Itzik Ben-gan的Microsoft SQL Server 2008 T-SQL基础知识 (2008年10月)
  • Julia Lerman 编程entity framework (2009年2月)
  • Murach的ADO.NET 3.5,LINQ和 Anne Boehm 的entity framework (2009年3月)

更新 :这个答案在过去没有的一件事是链接到SQL和数据库新手的信息,所以我也会在这里放一些相关链接,以便你(或其他任何人)可以刷新他们的SQL和其他数据库设计技巧。

  • W3 Schools SQL教程
  • 数据库设计教程

其中很多都来自我今天写的另一个答案,但它会详细介绍您的具体问题:

原答案

这听起来像或多或少需要从C#连接和操作数据库的基本介绍。 上面的海报说明了LINQ to SQL,但你也可以查看ADO.NET的更基本的底层框架,它将让你了解它的工作原理。

此外,您可以在此处使用此站点获取C#的许多不同数据库教程。

编辑 :来自C#Station , CodeProject和Codersource的更多信息

编辑2 :如果您对其他人如上所述的Linq to SQL感兴趣,这里有一些来自C#Corner和C-Sharp Online的教程

编辑3 :其他人也会建议诸如ADO.NETentity framework之类的东西。 对于仍然需要掌握使用数据库的基础知识的初学者,我不一定会建议这样做。 以下是MSDN概述中的一些信息

简单示例 (直接从上面给出的C#站链接中提取)

清单1.使用SqlConnection

using System; using System.Data; using System.Data.SqlClient; ///  /// Demonstrates how to work with SqlConnection objects ///  class SqlConnectionDemo { static void Main() { // 1. Instantiate the connection SqlConnection conn = new SqlConnection( "Data Source=(local);Initial Catalog=Northwind; Integrated Security=SSPI"); SqlDataReader rdr = null; try { // 2. Open the connection conn.Open(); // 3. Pass the connection to a command object SqlCommand cmd = new SqlCommand("select * from Customers", conn); // // 4. Use the connection // // get query results rdr = cmd.ExecuteReader(); // print the CustomerID of each record while (rdr.Read()) { Console.WriteLine(rdr[0]); } } finally { // close the reader if (rdr != null) { rdr.Close(); } // 5. Close the connection if (conn != null) { conn.Close(); } } } } 

就个人而言,我认为理解这些“框架”的作用是很好的。 我将从一些基本查询开始尝试获取SQL的工作方式。 一旦开始,你可能不会那么多地使用它,但我总是发现如果我能理解它为我做了什么,我更容易理解为什么我需要一个框架。

在考虑使用LINQ之前,首先了解数据库基础知识和t-sql。 如果您不了解联接的工作方式以及数据库的结构,则无法使用任何工具进行有效查询。

以下是一些帮助链接: http : //www.tek-tips.com/faqs.cfm ? fid = 4785 http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx

首先拿起Ben Forta的任何sql书籍。 一旦掌握了基本原理,就可以继续理解库,块和其他框架。 在您的职业生涯中,它将帮助您充分了解数据库。