在 ASP.NET C# 中将数据插入 Visual Studio LocalDB
Insert data into Visual Studio LocalDB in ASP.NET C#
我有一个 Windows 网络应用程序并在 App_Data
文件夹中创建了一个 .mdf
文件,我正在尝试将数据插入到已创建的 table 中.
它能够使用基本的 SELECT *
语句检索代码,但我无法插入数据,这是我的代码:
private void Update(string username)
{
SqlConnection con = new SqlConnection(@"MYSQLCONNECTION");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
string bcd = "INSERT INTO NameList(name) VALUES (@paraUsername)";
cmd = new SqlCommand(bcd, con);
cmd.Parameters.AddWithValue("@paraUsername", username);
cmd.ExecuteNonQuery();
list.Update();
con.Close();
}
这段代码过去对我有用,但这次不起作用。没有显示错误,但数据没有插入 table。
这就是我在 button_click 方法中调用方法的方式:
Update(tbName.text);
可能是什么问题?
假设你有一个
AttachDbFileName=......
连接字符串中的部分 - 那么这是一个已知问题:
整个 AttachDbFileName= 方法是有缺陷的 - 充其量!当 运行 你的应用程序在 Visual Studio 时,它将围绕 .mdf
文件进行复制(从你的 App_Data
目录到输出目录 - 通常是 .\bin\debug
- 你应用程序运行)并且很可能,你的INSERT
工作得很好 - 但你只是在查看错误的.mdf文件结束!
如果您想坚持使用这种方法,请尝试在 myConnection.Close()
调用上放置一个断点 - 然后使用 SQL Server Mgmt Studio Express 检查 .mdf
文件 - 我我几乎可以肯定你的数据在那里。
我认为真正的解决方案是
安装 SQL Server Express(无论如何你已经完成了)
安装SQL Server Management Studio Express
在 SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如 YourDatabase
)
使用其逻辑 数据库名称 连接到它(在服务器上创建它时给出)- 不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:
Data Source=.\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
其他一切完全和以前一样...
另请参阅 Aaron Bertrand 的精彩博客 post Bad habits to kick: using AttachDbFileName 了解更多背景信息。
我有一个 Windows 网络应用程序并在 App_Data
文件夹中创建了一个 .mdf
文件,我正在尝试将数据插入到已创建的 table 中.
它能够使用基本的 SELECT *
语句检索代码,但我无法插入数据,这是我的代码:
private void Update(string username)
{
SqlConnection con = new SqlConnection(@"MYSQLCONNECTION");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
string bcd = "INSERT INTO NameList(name) VALUES (@paraUsername)";
cmd = new SqlCommand(bcd, con);
cmd.Parameters.AddWithValue("@paraUsername", username);
cmd.ExecuteNonQuery();
list.Update();
con.Close();
}
这段代码过去对我有用,但这次不起作用。没有显示错误,但数据没有插入 table。
这就是我在 button_click 方法中调用方法的方式:
Update(tbName.text);
可能是什么问题?
假设你有一个
AttachDbFileName=......
连接字符串中的部分 - 那么这是一个已知问题:
整个 AttachDbFileName= 方法是有缺陷的 - 充其量!当 运行 你的应用程序在 Visual Studio 时,它将围绕 .mdf
文件进行复制(从你的 App_Data
目录到输出目录 - 通常是 .\bin\debug
- 你应用程序运行)并且很可能,你的INSERT
工作得很好 - 但你只是在查看错误的.mdf文件结束!
如果您想坚持使用这种方法,请尝试在 myConnection.Close()
调用上放置一个断点 - 然后使用 SQL Server Mgmt Studio Express 检查 .mdf
文件 - 我我几乎可以肯定你的数据在那里。
我认为真正的解决方案是
安装 SQL Server Express(无论如何你已经完成了)
安装SQL Server Management Studio Express
在 SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如
YourDatabase
)使用其逻辑 数据库名称 连接到它(在服务器上创建它时给出)- 不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:
Data Source=.\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
其他一切完全和以前一样...
另请参阅 Aaron Bertrand 的精彩博客 post Bad habits to kick: using AttachDbFileName 了解更多背景信息。