我正在使用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 = "";
}
在测试过程中,我收到了“注册成功”的预期信息
但是,当我查看数据库值时,它们是空的,我收到此错误:
如何确保将数据输入表中?
编辑:连接字符串:
string ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\GardenRegister.mdf;Integrated Security=True";
答案 0 :(得分:0)
尝试在使用声明结尾处使用SQLCon.Close();
关闭连接。
在执行查询之前,还要将SQLCon.Open();
移到该行(虽然这与您的问题无关,但最佳做法)