【问题标题】:Introduction to database interaction with C#C#数据库交互介绍
【发布时间】:2010-10-20 04:51:06
【问题描述】:

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

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

我从哪里开始?

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

【问题讨论】:

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


    【解决方案1】:

    我建议您花时间学习 Microsoft SQL Server 本身、Enterprise Library 中的 Data Access Application BlockADO。 NET 实体框架.

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

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

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

    另见

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

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

    还可以在CodePlex.com 上查看现有的开源项目,这些项目使用这些技术并深入研究其源代码。

    好书为您推荐:

    【讨论】:

    • 请注意,Linq To SQL 已暂停,因此从长远来看,专注于实体框架会更好。
    • 是的,如果您要在 .NET 中做任何面向数据库的事情,ADO.NET 是必须学习的。所有其他数据框架都基于它(实体、LINQ to Datasets、LINQ to SQL 等)。当然,ADO.NET 可以单独使用,这对于小型项目/小型数据库来说是完全可以接受的,尽管您可能会为任何更大的项目使用实体框架,ORM(对象关系映射器)现在受到青睐。
    【解决方案2】:

    是的,您确定了正确的技术。

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

    ADO.NET

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

    http://www.springerlink.com/content/w2126101r8qr2052/(ado.net 基础与 c#)

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

    http://dotnet.jku.at/courses/tutorial/05.ADO.NET.pdf(很棒的概述幻灯片)

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

    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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        原答案

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

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

        编辑:更多信息来自C# StationCodeProjectCodersource

        编辑 2:如果您对上面提到的 Linq to SQL 之类的东西感兴趣,这里有一些来自 C# CornerC-Sharp Online 的教程

        Edit 3:其他人也会建议诸如 ADO.NET Entity Framework 之类的东西。对于仍然需要掌握使用数据库的基础知识的初学者,我不一定建议这样做。以下是来自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();
                    }
                }
            }
        }
        

        【讨论】:

        • +1:LINQ 和实体是 ADO.NET 之上的许多层。如果您刚开始使用数据库编程,您真的应该从核心 System.Data 类开始,然后通过 Enterprise Library 包装器从那里开始。
        • 戴夫:我完全同意。我们经常看到人们向几乎不了解基础知识的用户推荐解决方案、工具、框架等。这只会让大门敞开,犯下巨大的错误,因为您不了解所有这些层下发生的事情。
        【解决方案5】:

        首先从Ben Forta 拿起任何 sql 书。一旦掌握了基本的基础知识,就可以继续了解库、块和其他框架。对数据库有一个很好的理解对你的职业生涯有很大帮助。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

          • 同意(我想投赞成票,但我今天剩下的时间都在外面)。人们在宣传本应使一切变得更好的新产品之前忘记宣讲基础知识。
          猜你喜欢
          • 2019-07-21
          • 2018-07-10
          • 2012-01-30
          • 2018-10-16
          • 2014-03-12
          • 1970-01-01
          • 2013-05-06
          • 2019-04-18
          • 1970-01-01
          相关资源
          最近更新 更多