与C#数据库交互简介

Jim*_*iel 10 c# sql ado.net linq-to-sql

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

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

我从哪里开始?

编辑:感谢所有的回复.有很多好的 - 我很难选择一个作为"答案".这对我很有帮助!

Kon*_*kus 14

我建议在学习投资你的时间的Microsoft SQL Server本身,数据访问应用程序块企业库ADO.NET实体框架.

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

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

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

另见:

您可能还想下载LINQPad,它是玩LINQ的完美工具.

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

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

关于这个主题的好书:

  • 请注意,Linq To SQL已被暂停,因此从长远来看,您将更好地关注实体框架. (2认同)

The*_*TXI 6

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

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

原答案:

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

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

编辑:来自C#Station,CodeProjectCodersource的更多信息

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

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

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

清单1.使用SqlConnection

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

/// <summary>
/// Demonstrates how to work with SqlConnection objects
/// </summary>
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();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)