当从C#将数据输入我的T-SQL表时,我收到一个错误

时间:2018-01-04 15:21:28

标签: c# sql-server tsql

我正在使用C#和本地SQL Server数据库创建一个类似于程序的寄存器。

我设法创建了一个查询,将数据输入到名为UserAdd的表中。

代码:

ALTER PROCEDURE UserAdd 
    @Name VARCHAR(30), 
    @Organisation VARCHAR(20),
    @DOB DATETIME,
    @Contact VARCHAR(50),
    @Address VARCHAR(250) 
AS 
    INSERT INTO Member(Name, Organisation, DOB, Contact, Address)
    VALUES (@Name, @Organisation, @DOB, @Contact, @Address)

创建完成后,我使用下面的代码确保它通过查询并添加到数据库中:

private void Btn_Submit_Click(object sender, EventArgs e)
{
        if (Txt_NameReg.Text == "")
        {
            MessageBox.Show("Please fill required fields(*)");
        }
        else
        {
            using (SqlConnection SQLCon = new SqlConnection(ConnectionString))
            {
                SQLCon.Open();

                SqlCommand SqlCmd = new SqlCommand("UserAdd", SQLCon);
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlCmd.Parameters.AddWithValue("@Name", Txt_NameReg.Text.Trim());
                SqlCmd.Parameters.AddWithValue("@Organisation", Txt_OrgReg.Text.Trim());
                SqlCmd.Parameters.AddWithValue("@DOB", DT_DobReg.Value.ToString("dd-MM-yyyy"));
                SqlCmd.Parameters.AddWithValue("@Contact", Txt_RegCont.Text.Trim());
                SqlCmd.Parameters.AddWithValue("@Address",Txt_RegAddress.Text.Trim());

                SqlCmd.ExecuteNonQuery();

                MessageBox.Show("Registration Successfull");
                Clear();
            }
        }
    }

    void Clear()
    {
        Txt_NameReg.Text = Txt_OrgReg.Text = DT_DobReg.Text = Txt_RegCont.Text = Txt_RegAddress.Text = "";
    }

在测试过程中,我收到了“注册成功”的预期信息

但是,当我查看数据库值时,它们是空的,我收到此错误:

enter image description here

如何确保将数据输入表中?

编辑:连接字符串:

string ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\GardenRegister.mdf;Integrated Security=True";

1 个答案:

答案 0 :(得分:0)

尝试在使用声明结尾处使用SQLCon.Close();关闭连接。

在执行查询之前,还要将SQLCon.Open();移到该行(虽然这与您的问题无关,但最佳做法)