C#SQL数据库未插入数据

时间:2016-01-03 15:28:22

标签: c# sql

我有一个SQL数据库,其中指定了相对文件路径。我知道文件路径有效,因为程序运行没有错误。但是,我的SQL工作正常,直到我将文件路径从完整路径更改为此相对路径。

当我按下WFA上的提交按钮时,程序看起来好像是保存到数据库中,因为有一个短暂的暂停,但当我查看我的Student表时,没有插入任何数据。同样,没有错误。

我在command.Parameters.AddWithValue("@FullName", sFnameTxtBox.Text);添加了一个断点,但它没有出现在本地选项卡中。

在数据源标签中,SRSDB.mdf有时会出现一个红色x图标,但是当我刷新它时,红色x图标会消失。

当用户在文本框中输入详细信息时,应在按下提交后将详细信息插入student表。

using System.Data.Sql;
using System.Data.SqlClient; 
using System.Configuration;
using System.IO;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
       SqlCommand command; 
        SqlConnection connection;
        SqlDataAdapter dataAdapter; 

        private void button1_Click(object sender, EventArgs e)
        {

          connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+ Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SRSDB.mdf"));

          connection.Open();

          command = new SqlCommand("INSERT INTO Student (FullName, Email, TelNo,     Username, Password) VALUES (@FullName, @Email, @TelNo, @Username, @Password)", connection);

          command.Parameters.AddWithValue("@FullName", sFnameTxtBox.Text);

          command.Parameters.AddWithValue("@Email", sEmailTxtBox.Text);

          command.Parameters.AddWithValue("@TelNo", sTelNoTxtBox.Text);

          command.Parameters.AddWithValue("@Username", sUnameTxtBox.Text);

          command.Parameters.AddWithValue("@Password", sPwordTxtBox.Text);

          command.ExecuteNonQuery();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我推断,由于某种原因,你写的地点与你想的不同。

要确认这一点,请在代码中对数据库运行查询,并查看是否返回了刚刚插入的数据。如果是,则写入数据库已成功:但您正在写入您在项目中看不到的MDF文件。

我将路径构造拉出到局部变量中:

string dbPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SRSDB.mdf");
connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + dbPath);

将断点放在上面,得到dbPath的值,看看有什么。这是您期望的MDF文件吗?

将连接字符串保存在一个位置也是一种好习惯。如果您有理由对其进行更改,则只需进行一次更改即可修复整个应用。所以在某处声明它,然后每次都从那里访问它。