亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C# 数据库连接:如何连接 SQL Server(示例)


从数据库访问数据是任何编程语言的重要方面之一。任何编程语言都必须具备使用数据库的能力。 C# 也不例外。

它可以与不同类型的数据库一起使用。它可以与Oracle和Microsoft SQL Server等最常见的数据库一起使用。

它还可以与MongoDB和MySQL等新形式的数据库一起使用。

在这个 C# sql 连接教程中,你将学习到-

数据库连接基础知识

C# 和 .Net 可以与大多数数据库一起使用,最常见的是 Oracle 和 Microsoft SQL Server。但是对于每个数据库,使用它们背后的逻辑几乎是相同的。

在我们的示例中,我们将使用 Microsoft SQL Server 作为我们的数据库。出于学习目的,可以下载和使用 Microsoft SQL Server Express Edition ,这是微软提供的免费数据库软件。

在使用数据库时,以下是所有数据库共有的概念。

  1. 连接 – 要处理数据库中的数据,第一个明显的步骤是连接。与数据库的连接通常由以下参数组成。
    1. 数据库名称或数据源 – 第一个重要参数是需要建立连接的数据库名称。每个连接一次只能使用一个数据库。
    2. 凭据 – 下一个重要方面是需要用于建立与数据库的连接的用户名和密码。它确保用户名和密码具有连接数据库所需的权限。
    3. 可选参数 – 对于每种数据库类型,您可以指定可选参数以提供有关 .net 应如何处理与数据库的连接的更多信息。例如,可以指定连接应保持活动多长时间的参数。如果在特定时间段内没有执行任何操作,则该参数将确定是否必须关闭连接。
  2. 从数据库中选择数据 – 建立连接后,下一个重要方面是从数据库中获取数据。 C# 可以对数据库执行“SQL”选择命令。 “SQL”语句可用于从数据库中的特定表中获取数据。
  3. 向数据库中插入数据 – C# 也可用于将记录插入数据库。可以在 C# 中为需要插入数据库的每一行指定值。
  4. 将数据更新到数据库中 – C# 也可用于将现有记录更新到数据库中。可以在 C# 中为需要更新到数据库中的每一行指定新值。
  5. 从数据库中删除数据 – C# 也可用于将记录删除到数据库中。可以在 C# 中指定用于指定需要删除哪些行的选择命令。
  6. 好的,现在我们已经了解了每个操作的理论,让我们跳到进一步的部分,看看我们如何在 C# 中执行数据库操作。

    c#中的SQL命令

    C#中的SqlCommand 允许用户查询并将命令发送到数据库。 SQL 命令由 SQL 连接对象指定。使用了两种方法,ExecuteReader 方法用于查询结果,ExecuteNonQuery 用于插入、更新和删除命令。这是最适合不同命令的方法。

    如何将 C# 连接到数据库

    现在让我们看一下代码,它需要保留在适当的位置以创建与数据库的连接。在我们的示例中,我们将连接到名为 Demodb 的数据库。下面给出了用于连接数据库的凭据

    • 用户名 - sa
    • 密码 - demo123

    我们将看到一个简单的 Windows 窗体应用程序来处理数据库。我们将有一个名为“Connect”的简单按钮,用于连接到数据库。

    所以让我们按照以下步骤来实现这一点

    步骤 1) 第一步涉及在 Visual Studio 中创建一个新项目。启动 Visual Studio 后,您需要选择菜单选项 New->Project。

    步骤 2) 下一步是选择项目类型作为 Windows 窗体应用程序。在这里,我们还需要提及我们项目的名称和位置。

    1. 在项目对话框中,我们可以看到在 Visual Studio 中创建不同类型项目的各种选项。点击左侧的 Windows 选项。
    2. 当我们单击上一步中的 Windows 选项时,我们将能够看到 Windows 窗体应用程序的选项。点击此选项。
    3. 然后我们为应用程序命名,在我们的例子中是“DemoApplication”。我们还需要提供一个位置来存储我们的应用程序。
    4. 最后,我们点击“确定”按钮,让 Visual Studio 创建我们的项目。


    步骤 3) 现在将工具箱中的按钮添加到 Windows 窗体。将 Button 的 text 属性设置为 Connect。这就是它的样子

    第 4 步) 现在双击表单,以便将事件处理程序添加到按钮单击事件的代码中。在事件处理程序中,添加以下代码。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace DemoApplication1
    {
     public partial class Form1 : Form
     {
      public Form1()
      {
       InitializeComponent();
      }
    
      private void button1_Click(object sender, EventArgs e)
      {
       string connetionString;
       SqlConnection cnn;
       connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demol23";
       cnn = new SqlConnection(connetionString);
       cnn.Open();
       MessageBox.Show("Connection Open  !");
       cnn.Close();
      }
     }
    }

    代码说明:-

    1. 第一步是创建变量,这些变量将用于创建连接字符串和与 SQL Server 数据库的连接。
    2. 下一步是创建连接字符串。需要正确指定连接字符串,C# 才能理解连接字符串。连接字符串由以下部分组成
      1. 数据源 – 这是数据库所在服务器的名称。在我们的例子中,它驻留在名为 WIN- 50GP30FGO75 的机器上。
      2. 初始目录用于指定数据库的名称
      3. 用户 ID 和密码是连接数据库所需的凭据。
    3. 接下来,我们将连接字符串分配给变量 cnn。 SqlConnection 类型的变量 cnn 用于建立与数据库的连接。
    4. 接下来,我们使用 cnn 变量的 Open 方法打开与数据库的连接。然后,我们只向用户显示连接已建立的消息。
    5. 一旦操作成功完成,我们就会关闭与数据库的连接。如果不需要对数据库执行任何其他操作,最好关闭与数据库的连接。

    设置上述代码并使用 Visual Studio 执行项目后,您将获得以下输出。显示表单后,单击“连接”按钮。

    输出:-

    当您单击“连接”按钮时,从输出中可以看到数据库连接已建立。因此,显示了消息框。

    使用 SqlDataReader 访问数据

    为了展示如何使用 C# 访问数据,让我们假设我们的数据库中有以下工件。

    1. 名为 demotb 的表。该表将用于存储各种教程的 ID 和名称。
    2. 该表将有 2 列,一列称为“TutorialID”,另一列称为“TutorialName”。
    3. 目前,表格将有 2 行,如下所示。
    TutorialIDTutorialName1C#2ASP.Net

    让我们更改表单中的代码,以便我们可以查询此数据并通过消息框显示信息。请注意,下面输入的所有代码都是上一节中为数据连接编写的代码的延续。

    步骤 1) 让我们将代码分成两部分,以便用户易于理解。

    • 首先是构建我们的“select”语句,用于从数据库中读取数据。
    • 然后我们将对数据库执行“select”语句并相应地获取所有表行。

    代码说明:-

    1. 第一步是创建以下变量
      1. SQLCommand – “SQLCommand”是在 C# 中定义的一个类。该类用于执行对数据库的读写操作。因此,第一步是确保我们创建这个类的变量类型。然后,此变量将用于从我们的数据库中读取数据的后续步骤。
      2. DataReader 对象用于获取 SQL 查询指定的所有数据。然后我们可以使用数据阅读器一一读取所有表格行。
      3. 然后我们定义2个字符串变量,一个是“SQL”来保存我们的SQL命令字符串。接下来是包含所有表格值的“输出”。
    2. 下一步是定义 SQL 语句,它将用于我们的数据库。在我们的例子中,它是“Select TutorialID, TutorialName from demotb”。这将从 demotb 表中获取所有行。
    3. 接下来,我们创建用于对数据库执行 SQL 语句的命令对象。在 SQL 命令中,您必须传递连接对象和 SQL 字符串。
    4. 接下来,我们将执行数据读取器命令,该命令将从 demotb 表中获取所有行。
    5. 现在我们已经拥有了表的所有行,我们需要一种机制来逐一访问该行。为此,我们将使用 while 语句。 while 语句将用于一次访问数据读取器中的行。然后我们使用 GetValue 方法获取 TutorialID 和 TutorialName 的值。

    步骤 2) 在最后一步,我们将只向用户显示输出并关闭所有与数据库操作相关的对象。

    代码说明:-

    1. 我们将通过使用 MessageBox 显示 Output 变量的值来继续我们的代码。输出变量将包含 demotb 表中的所有值。
    2. 我们最终关闭了所有与我们的数据库操作相关的对象。请记住,这始终是一个好习惯。

    设置上述代码并使用 Visual Studio 运行项目后,您将获得以下输出。显示表单后,单击“连接”按钮。

    输出:-

    从输出中,您可以清楚地看到程序能够从数据库中获取值。然后数据会显示在消息框中。

    C# 插入数据库

    就像访问数据一样,C# 也可以将记录插入数据库。为了展示如何将记录插入我们的数据库,让我们采用与上面相同的表结构。

    TutorialIDTutorialName1C#2ASP.Net

    让我们更改表单中的代码,以便我们可以在表格中插入以下行

    TutorialIDTutorialName3VB.Net

    因此,让我们将以下代码添加到我们的程序中。下面的代码片段将用于在我们的数据库中插入现有记录。

    代码说明:-

    1. 第一步是创建以下变量
      1. SQLCommand – 此数据类型用于定义用于对数据库执行 SQL 操作的对象。该对象将保存针对我们的 SQL Server 数据库运行的 SQL 命令。
      2. DataAdapter 对象用于执行特定的 SQL 操作,例如插入、删除和更新命令。
      3. 然后我们定义一个字符串变量,即“SQL”来保存我们的 SQL 命令字符串。
    2. 下一步是实际定义将用于我们的数据库的 SQL 语句。在我们的例子中,我们发出一个插入语句,它将插入 TutorialID=1 和 TutorialName=VB.Net 的记录
    3. 接下来,我们创建用于对数据库执行 SQL 语句的命令对象。在 SQL 命令中,您必须传递连接对象和 SQL 字符串
    4. 在我们的数据适配器命令中,我们现在将插入 SQL 命令与我们的适配器相关联。然后我们还发出 ExecuteNonQuery 方法,该方法用于对我们的数据库执行 Insert 语句。 “ExecuteNonQuery”方法在 C# 中用于针对数据库发出任何 DML 语句。 DML 语句是指插入、删除和更新操作。在 C# 中,如果要针对表发出任何这些语句,则需要使用 ExecuteNonQuery 方法。
    5. 我们最终关闭了所有与我们的数据库操作相关的对象。请记住,这始终是一个好习惯。

    设置上述代码并使用 Visual Studio 执行项目后,您将获得以下输出。显示表单后,单击“连接”按钮。

    输出:-

    如果你转到 SQL Server Express 并查看 demotb 表中的行,你会看到插入的行如下所示

    C# 更新数据库

    就像访问数据一样,C# 也能够更新数据库中的现有记录。为了展示如何将记录更新到我们的数据库中,让我们采用与上面使用的相同的表结构。

    TutorialIDTutorialName1C#2ASP.Net3VB.Net

    让我们更改表单中的代码,以便我们可以更新以下行。旧行值为 TutorialID 为“3”,Tutorial Name 为“VB.Net”。我们会将其更新为“VB.Net complete”,而 Tutorial ID 的行值将保持不变。

    旧行

    TutorialIDTutorialName3VB.Net

    新行

    TutorialIDTutorialName3VB.Net 完成

    因此,让我们将以下代码添加到我们的程序中。下面的代码片段将用于更新我们数据库中的现有记录。

    带有代码说明的C# SqlCommand 示例:-

    1. 第一步是创建以下变量
      1. SQLCommand – 此数据类型用于定义用于对数据库执行 SQL 操作的对象。该对象将保存针对我们的 SQL Server 数据库运行的 SQL 命令。
      2. dataadapter 对象用于执行特定的 SQL 操作,例如插入、删除和更新命令。
      3. 然后我们定义一个字符串变量,也就是 SQL 来保存我们的 SQL 命令字符串。
    2. 下一步是定义将用于我们的数据库的 SQL 语句。在我们的例子中,我们发布了一条更新语句,这会将 Tutorial 名称更新为“VB.Net Complete”,而 TutorialID 保持不变并保持为 3。
    3. 接下来,我们将创建命令对象,用于对数据库执行 SQL 语句。在 SQL 命令中,您已经传递了连接对象和 SQL 字符串。
    4. 在我们的数据适配器命令中,我们现在将插入 SQL 命令与我们的适配器相关联。然后,我们还会发出 ExecuteNonQuery 方法,该方法用于对我们的数据库执行 Update 语句。
    5. 我们最终关闭了所有与我们的数据库操作相关的对象。请记住,这始终是一个好习惯。

    设置上述代码并使用 Visual Studio 执行项目后,您将获得以下输出。显示表单后,单击“连接”按钮。

    输出:-

    如果你真的去 SQL Server Express 并查看 demotb 表中的行,你会看到该行已成功更新,如下所示。

    删除记录

    就像访问数据一样,C# 也能够从数据库中删除现有记录。为了展示如何将记录删除到我们的数据库中,让我们采用与上面相同的表结构。

    TutorialIDTutorialName1C#2ASP.Net3VB.Net 完成

    让我们更改表单中的代码,以便我们可以删除以下行

    TutorialIDTutorialName3VB.Net 完成

    因此,让我们将以下代码添加到我们的程序中。下面的代码片段将用于删除我们数据库中的现有记录。

    代码说明:-

    1. 此代码的主要区别在于我们现在发出删除 SQL 语句。 delete语句用于删除demotb表中TutorialID值为3的行。
    2. 在我们的数据适配器命令中,我们现在将插入 SQL 命令与我们的适配器相关联。然后我们还会发出 ExecuteNonQuery 方法,该方法用于对我们的数据库执行 Delete 语句。

    设置上述代码并使用 Visual Studio 执行项目后,您将获得以下输出。显示表单后,单击“连接”按钮。

    输出:-

    如果你真的去 SQL Server Express 看到 demotb 表中的行,你会看到该行被成功删除,如下所示。

    将控件连接到数据

    在前面的部分中,我们已经了解了如何使用 SQLCommand 和 SQLReader 等 C# 命令从数据库中获取数据。我们还看到了如何读取表格的每一行并使用消息框向用户显示表格的内容。

    但很明显,用户不希望看到通过消息框发送的数据,而是希望更好的控件来显示数据。让我们把下面的数据结构放在一个表中

    TutorialIDTutorialName1C#2ASP.Net3VB.Net 完成

    从上面的数据结构中,用户理想地希望看到在文本框中显示的 TutorialID 和 Tutorial Name。其次,他们可能想要某种按钮控件,以允许他们转到表中的下一条记录或上一条记录。这需要开发者端进行一些额外的编码。

    好消息是 C# 可以通过允许将控件绑定到数据来减少额外的编码工作。这意味着C#可以根据表格的特定字段自动填充文本框的值。

    因此,您可以在 Windows 窗体中拥有 2 个文本框。然后,您可以将一个文本框链接到 TutorialID 字段,并将另一个文本框链接到 TutorialName 字段。此链接是在 Visual Studio 设计器本身中完成的,您无需为此编写额外的代码。

    Visual Studio 将确保它为您编写代码以确保链接正常工作。然后,当您运行应用程序时,文本框控件将自动连接到数据库,获取数据并将其显示在文本框控件中。开发者端不需要编码来实现这一点。

    我们来看一个代码示例,了解如何实现控件的绑定。

    在我们的示例中,我们将在 windows 窗体上创建 2 个文本框。它们将分别代表教程 ID 和教程名称。它们将相应地绑定到数据库的 Tutorial ID 和 TutorialName 字段。

    让我们按照下面提到的步骤来实现这一点。

    步骤 1) 构建基本形式。在表单中拖放 2 个组件 - 标签和文本框。然后执行以下子步骤

    1. 将第一个标签的文本值作为TutorialID
    2. 将第二个标签的文本值设为TutorialName
    3. 将第一个文本框的名称属性设为txtID
    4. 将第二个文本框的名称属性设为txtName

    以下是执行上述步骤后表单的外观。

    步骤 2) 下一步是将绑定导航器添加到表单。绑定的 Navigator 控件可以自动浏览表格的每一行。要添加绑定导航器,只需转到工具箱并将其拖到表单中即可。

    步骤 3) 下一步是向我们的数据库添加绑定。这可以通过转到任何文本框控件并单击 DataBindings->Text 属性来完成。 Binding Navigator 用于建立从您的应用程序到数据库的链接。

    执行此步骤时,Visual Studio 会自动将所需代码添加到应用程序,以确保应用程序链接到数据库。通常,Visual Studio 中的数据库称为项目数据源。所以要确保应用程序和数据库之间建立连接,第一步是创建项目数据源。

    将显示以下屏幕。单击链接-“添加项目数据源”。当您单击项目数据源时,您将看到一个向导;这将允许您定义数据库连接。

    第 4 步) 单击“添加项目数据源”链接后,您将看到一个向导,该向导将用于创建与 demotb 数据库的连接。以下步骤详细显示了在向导的每个步骤中需要配置的内容。

    1. 在弹出的界面中,选择Data Source type为Database,然后点击next按钮。

    1. 在下一个屏幕中,您需要开始创建到数据库的连接字符串。应用程序需要连接字符串才能建立与数据库的连接。它包含服务器名称、数据库名称和驱动程序名称等参数。
      1. 点击新建连接按钮
      2. 选择数据源为 Microsoft SQL Server
      3. 点击继续按钮。

    1. 接下来,您需要添加凭据以连接到数据库
      1. 选择 SQL Server 所在的服务器名称
      2. 输入用户名和密码连接数据库
      3. 选择数据库为demotb
      4. 点击“确定”按钮。

    1. 在此屏幕中,我们将确认之前屏幕上进行的所有设置。
      1. 选择“是”选项以在连接字符串中包含敏感数据
      2. 点击“下一步”按钮。

    1. 在下一个屏幕中,单击“下一步”按钮以确认连接字符串的创建

    1. 在这一步中,
    1. 选择 Demotb 的表格,将在下一个屏幕中显示。
    2. 此表现在将成为 C# 项目中的可用数据源

    当您单击 Finish 按钮时,Visual Studio 现在将确保应用程序可以查询 Demotb 表中的所有行。

    第 5 步) 现在已经定义了数据源,我们现在需要将 TutorialID 和 TutorialName 文本框连接到 demotb 表。当您单击 TutorialID 或 TutorialName 文本框的 Text 属性时,您现在将看到 Demotb 的绑定源可用。

    对于第一个文本框,选择教程 ID。对第二个文本框重复此步骤并选择该字段作为 TutorialName。下面的步骤展示了我们如何导航到每个控件并相应地更改绑定。

    1. 点击教程 ID 控件。

    1. 在“属性”窗口中,您将看到 TutorialID 文本框的属性。转到 text 属性并单击向下箭头按钮。

    1. 当您单击向下箭头按钮时,您将看到 demotbBinding Source 选项。在此之下,您将看到 TutorialName 和 TutorialID 的选项。选择教程 ID 之一。

    对 Tutorial Name 文本框重复上述 3 步。

    1. 所以点击教程名称文本框
    2. 转到属性窗口
    3. 选择文本属性
    4. 选择 demotbBindingSource 下的 TutorialName 选项

    第 6 步) 接下来,我们需要更改 BindingNavigator 的 Binding Source 属性以指向我们的 Demotb 数据源。我们这样做的原因是 Binding Navigator 还需要知道它需要引用哪个表。

    Binding Navigator 用于选择表中的下一条或上一条记录。因此,即使将数据源作为一个整体添加到项目和文本框控件中,我们仍然需要确保 Binding Navigator 也具有指向我们的数据源的链接。为此,我们需要单击 Binding navigator 对象,转到 Binding Source 属性并选择可用的那个

    接下来,我们需要进入 Properties 窗口,以便我们可以对 Binding Source 属性进行更改。

    当上述所有步骤都成功执行后,您将得到如下输出。

    输出:-

    现在当项目启动时,您可以看到文本框自动从表格中获取值。

    当您单击导航器上的下一步按钮时,它会自动转到表中的下一条记录。并且下一条记录的值会自动出现在文本框中

    C# 数据网格视图

    Data Grids are used to display data from a table in a grid-like format. When a user sees’s table data, they normally prefer seeing all the table rows in one shot. This can be achieved if we can display the data in a grid on the form.

    C# and Visual Studio have inbuilt data grids, this can be used to display data. Let’s take a look at an example of this. In our example, we will have a data grid, which will be used to display the Tutorial ID and Tutorial Name values from the demotb table.

    Step 1) Drag the DataGridView control from the toolbox to the Form in Visual Studio. The DataGridView control is used in Visual Studio to display the rows of a table in a grid-like format.

    Step 2) In the next step, we need to connect our data grid to the database. In the last section, we had created a project data source. Let’s use the same data source in our example.

    1. First, you need to choose the grid and click on the arrow in the grid. This will bring up the grid configuration options.
    2. In the configuration options, just choose the data source as demotbBindingSource which was the data source created in the earlier section.

    If all the above steps are executed as shown, you will get the below-mentioned output.

    Output:-

    From the output, you can see that the grid was populated by the values from the database.

    总结

    • C# SQL can work with databases such as Oracle and Microsoft SQL Server.
    • This C# database tutorial has all the commands which are required to work with databases. This involves establishing a connection to the database. You can perform operations such as select, update, insert and delete using the commands in C#.
    • The DataReader object in C# is used to hold all the data returned by the database. The While loop in C# can be used to read the data rows one at a time.
    • The data adapter object is used to perform SQL operations such as insert, delete, and update against the database.
    • C# can bind controls to the various fields in a table. They are bound by defining a data source in C#. The data source is used to pull the data from the database and populate them in the controls.
    • The binding navigator is used to automatically navigate through the rows in a table.
    • The data grid in C# can connect to the database and display all the values from the table in a grid-like format.

C语言

  1. 什么是混淆 Vpn 服务器及其工作原理
  2. 如何在 3 美元的 WiFi 设备上安装安全的嵌入式 Web 服务器
  3. 如何将 Lego Mindstorms NXT 超声波传感器连接到 Raspberry Pi
  4. 如何使用简单的感知器神经网络示例对数据进行分类
  5. C 中的字符串:如何声明变量、初始化、打印、示例
  6. C 库中的 realloc() 函数:如何使用?语法和示例
  7. C 库中的 free() 函数:如何使用?通过示例学习
  8. Java 中的 String Length() 方法:如何通过示例查找
  9. Java BufferedReader:如何通过示例在 Java 中读取文件
  10. 内陆港口如何更好地连接美国供应链
  11. 服务器自动化如何到达 FANG
  12. 如何将 Haas CNC 连接到 PC 和笔记本电脑