与C#数据库交互简介

时间:2009-04-17 19:52:17

标签: c# sql linq-to-sql ado.net

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

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

我从哪里开始?

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

6 个答案:

答案 0 :(得分:14)

我建议您花时间从企业库 ADO学习 Microsoft SQL Server 本身,数据访问应用程序阻止。 NET实体框架

学习SQL Server的入口点在这里 - >的 SQL Server Developer Center
学习ADO.NET的切入点在这里 - > MSDN Learning ADO.NET

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

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

另见

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

另外,我建议订阅与ADO.NET相关的 RSS提要

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

关于这个主题的

好书

答案 1 :(得分:6)

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

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

原始答案

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

此外,您可以将此站点right here用于C#的许多不同的数据库教程。

修改:来自C# StationCodeProjectCodersource的更多信息

编辑2 :如果您对其他人如上所述的Linq to SQL感兴趣,请参阅C# CornerC-Sharp Online

中的一些教程。

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

中的一些信息

简单示例(这是直接从上面给出的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();
            }
        }
    }
}

答案 2 :(得分:2)

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

答案 3 :(得分:2)

是的,你已经确定了正确的技术。

我有一些很棒的免费pdfs /电子书供您查看:

<强> ADO.NET

http://www.murach.com/books/adon/chapters.htm(vb和ado.net

http://www.springerlink.com/content/w2126101r8qr2052/(使用c#的ado.net基础知识)

http://archive.visualstudiomagazine.com/books/chapters/1590595122.pdf(vb&amp; c#)

http://dotnet.jku.at/courses/tutorial/05.ADO.NET.pdf(精彩概述powerpoint)

http://docs.msdnaa.net/ark_new3.0/cd3/content/Courses%5CVargas%5CCh12.pdf(ado.net book)

http://media.wiley.com/product_data/excerpt/38/07821418/0782141838-1.pdf(很好)

<强> LINQ-TO-SQL Scott Gu的Linq to Sql可能就是你需要一个良好的开端:

http://it-box.blogturk.net/wp-content/themes/it-box/files/LINQToSql.pdf

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

首先从Ben Forta获取所有sql书籍。一旦掌握了基本原理,就可以继续理解库,块和其他框架。在您的职业生涯中,它将帮助您更好地理解数据库。