我有一个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();
}
}
}
答案 0 :(得分:0)
我推断,由于某种原因,你写的地点与你想的不同。
要确认这一点,请在代码中对数据库运行查询,并查看是否返回了刚刚插入的数据。如果是,则写入数据库已成功:但您正在写入您在项目中看不到的MDF文件。
我将路径构造拉出到局部变量中:
string dbPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SRSDB.mdf");
connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + dbPath);
将断点放在上面,得到dbPath
的值,看看有什么。这是您期望的MDF文件吗?
将连接字符串保存在一个位置也是一种好习惯。如果您有理由对其进行更改,则只需进行一次更改即可修复整个应用。所以在某处声明它,然后每次都从那里访问它。