我无法将记录添加到数据库

时间:2019-06-08 18:06:47

标签: c# sql database visual-studio tsql

我正在开发一个应用程序,但陷入了这个问题。我试图将记录添加到我的SQL本地数据库。它给出了成功的消息框,但是当我关闭应用程序并检查表时,记录不存在。我尝试以两种不同的方式添加它,但没有一个起作用。我将在此处发布代码

这是我尝试的第一种方法

using (SqlConnection _conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Restaurant.mdf;Integrated Security=True"))
                {
                    using (SqlCommand _cmd = new SqlCommand("INSERT INTO Chelneri(username, nume, prenume, email, parola) values ('" + textBoxUser.Text.ToString().Trim() +"', '"+ textBoxNume.Text.ToString().Trim() +"', '"+ textBoxPrenume.Text.ToString().Trim() +"', '"+ textBoxEmail.Text.ToString().Trim() +"', '"+ textBoxParola.Text.ToString().Trim() +"')", _conn))
                    {
                        try
                        {
                            _conn.Open();
                            _cmd.ExecuteNonQuery();
                            _conn.Close();
                            textBoxUser.Text = string.Empty;
                            textBoxNume.Text = string.Empty;
                            textBoxPrenume.Text = string.Empty;
                            textBoxParola.Text = string.Empty;
                            textBoxEmail.Text = string.Empty;
                            MessageBox.Show("Utilizatorul a fost creat!", "Restaurant Casa Verde", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch(Exception ex)
                        {
                            MessageBox.Show(ex.ToString(), "Restaurant Casa Verde", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            _conn.Close();
                        }
                    }
                }

这是第二个。

using (SqlConnection _conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Restaurant.mdf;Integrated Security=True"))
                {
                    using (SqlCommand _cmd = new SqlCommand("INSERT INTO Chelneri(username, nume, prenume, email, parola) values (@user, @nume, @prenume, @email, @parola)", _conn))
                    {
                        try
                        {
                            _conn.Open();

                            _cmd.Parameters.Clear();
                            _cmd.Parameters.Add("@user", SqlDbType.NVarChar).Value = textBoxUser.Text.ToString().Trim();
                            _cmd.Parameters.Add("@email", SqlDbType.NVarChar).Value = textBoxEmail.Text.ToString().Trim();
                            _cmd.Parameters.Add("@nume", SqlDbType.NVarChar).Value = textBoxNume.Text.ToString().Trim();
                            _cmd.Parameters.Add("@prenume", SqlDbType.NVarChar).Value = textBoxPrenume.Text.ToString().Trim();
                            _cmd.Parameters.Add("@parola", SqlDbType.NVarChar).Value = textBoxParola.Text.ToString().Trim();

                            _cmd.ExecuteNonQuery();
                            _conn.Close();
                            textBoxUser.Text = string.Empty;
                            textBoxNume.Text = string.Empty;
                            textBoxPrenume.Text = string.Empty;
                            textBoxParola.Text = string.Empty;
                            textBoxEmail.Text = string.Empty;
                            MessageBox.Show("Utilizatorul a fost creat!", "Restaurant Casa Verde", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch(Exception ex)
                        {
                            MessageBox.Show(ex.ToString(), "Restaurant Casa Verde", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            _conn.Close();
                        }
                    }
                }

我认为代码不是问题所在。我想我缺少了什么,我也不知道。 这是数据库的打印屏幕。

3 个答案:

答案 0 :(得分:1)

嗨,我认为您的连接字符串有误 首先阅读此page,以获取来自您的sql server的真实连接字符串 其次,请阅读此page以获取用于在C#中插入数据库的真实代码

我建议使用try catch这样的

try
  {

  }
catch
  {

  }
finally { cnn.close}

我希望它将对您有帮助

答案 1 :(得分:0)

我认为您的代码可以正常工作,但是您错过了一个简单的触摸检入操作 Restaurant.mdf ,如果不执行此步骤,则该操作:

  1. 右键单击 Restaurant.mdf ,然后单击属性。
  2. 构建选项->选择是否较新。

还要确保您正在检查正确的数据库文件。

如果在调试模式下运行,请转到Bin \ Debug文件夹并检查其中的mdf文件;如果在发布模式下运行,则需要检查Bin \ Release文件夹。

来源:codeproject

答案 2 :(得分:0)

您正在使用“ using”,不需要_cmd.Close();