INSERT 语句不会插入到 SQL Server 数据库中,使用 C# Winform

本文关键字:数据库 使用 Winform Server SQL 语句 插入 INSERT | 更新日期: 2023-09-27 18:33:50

我正在尝试将客户的信息从 C# Winforms 插入到 SQL Server 数据库中,尽管当我单击"添加"按钮时没有显示任何错误,没有数据被添加到数据库中。

下面是 Add 函数的代码:

 private void acceptButton_Click(object sender, EventArgs e)
 {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
        String query = "INSERT INTO Costumer(Name, Address, Phone, Note) VALUES(@name, @address, @phone, @note)";
        SqlCommand command = new SqlCommand(query, con);

        command.Parameters.AddWithValue("@name", nameTextBox.Text);
        command.Parameters.AddWithValue("@address", addressTextBox.Text);
        command.Parameters.AddWithValue("@phone", phoneTextBox.Text);
        command.Parameters.AddWithValue("@note", noteTextBox.Text);
        try
        {
            con.Open();
            command.ExecuteNonQuery();
            con.Close();
            this.Close();
        }
        catch (SqlException exception)
        {
            MessageBox.Show(exception.Message.ToString(), "Error Message");
        }
    }

这是客户表的设计

CREATE TABLE [dbo].[Costumer] (
  [CostumerId] INT           IDENTITY (1, 1) NOT NULL,
  [Name]       VARCHAR (50)  NULL,
  [Address]    VARCHAR (50)  NULL,
  [Phone]      VARCHAR (16)  NULL,
  [Note]       VARCHAR (250) NULL,
  PRIMARY KEY CLUSTERED ([CostumerId] ASC)
);

不知道问题出在哪里。

编辑:我在wform项目中使用的连接字符串。

下面是连接字符串:

<add name="myConnectionString" connectionString="Data Source=(LocalDB)'v11.0;AttachDbFilename=|DataDirectory|'database.mdf;Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient"/>

我已经对几个 SELECT 查询使用相同的连接字符串,它们工作正常。

INSERT 语句不会插入到 SQL Server 数据库中,使用 C# Winform

这是一种常见的情况。在项目文件之间列出了名为 database.mdf 的数据库文件,如果查看该文件的属性,您会注意到属性Copy To Output directory设置为 Copy Always

现在,在WinForms应用程序中,Output Directory是主项目文件夹下的文件夹BIN''DEBUG(或RELEASE和x86变体)。
连接字符串中使用的 DataDirectory 替换字符串完全指向此文件夹。
因此,您执行的每个插入都会将记录添加到该文件夹中的数据库中。

当然,如果您没有看到添加的记录,那么您很可能正在查看位于项目文件夹中的数据库,其中您的代码没有进行插入。

若要解决此问题,请将属性更改为 Copy If NewerCopy Never,并确保用于查看数据库表的工具使用指向 BIN''DEBUG 文件夹中的数据库的连接字符串