为了账号安全,请及时绑定邮箱和手机立即绑定

C# Winform SQL Server 连接字符串

C# Winform SQL Server 连接字符串

PHP
慕村9548890 2024-01-20 22:30:34
处理使用 SQL Server 的 WinForm 项目。目前,my 的属性设置为 。MusicPlayerDB.mdfCopy to Output DirectoryCopy if newer运行我的 后,我关闭了 Winform 并继续在服务器资源管理器中检查该表。但似乎我的表没有更新。但是如果我去检查和检查,数据就在那里。InsertIntoDBBin/DebugMusicPlayerDB.mdf解决此问题的最佳方法是什么?我看到其他评论说使用绝对路径(或类似的东西),但如果可能的话,我想避免这种情况。.mdf这是我的连接字符串,private const String CONNECTION_STRING = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\MusicPlayerDB.mdf;Integrated Security=True";这是我的插入代码:private static void InsertIntoDB(List<string> userAccout) {    String sqlQuery = "INSERT INTO dbo.UserAccount (UserName, UserPassword, PasswordQuestion, PasswordHint, PasswordKey) "                      + "VALUES (@UserName, @UserPassword, @PasswordQuestion, @PasswordHint, @PasswordKey);";    using(SqlConnection connection = new SqlConnection(CONNECTION_STRING))     {        connection.Open();          //open connection        using(SqlCommand command = new SqlCommand(sqlQuery, connection))         {                 // set up command            using(SqlTransaction trans = connection.BeginTransaction())             {                try                 {                    command.Connection = connection;                    command.Transaction = trans;                    command.Parameters.AddWithValue("@UserName", userAccout[0]);                    command.Parameters.AddWithValue("@UserPassword", userAccout[1]);                    command.Parameters.AddWithValue("@PasswordQuestion", userAccout[2]);                    command.Parameters.AddWithValue("@PasswordHint", userAccout[3]);                    command.Parameters.AddWithValue("@PasswordKey", Convert.ToInt32(userAccout[4]));                    int r = command.ExecuteNonQuery();  //execute the command                    trans.Commit();                }                 catch(Exception ex)                 {                    MessageBox.Show(ex.Message);    //couldn't execute command                }            }        }    }} //end of InsertIntoDB
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

这就是它的预期工作方式。|数据目录|在桌面应用中,指向可执行文件的运行位置。这意味着在 VS 中运行应用时为 bin\debug 或 bin\release(工作文件夹),但在 VS 外部运行应用时为安装文件夹。

这种安排允许您将空的 MDF 保留在项目文件夹中,而工作副本则保留在输出文件夹中。当需要更改数据库架构中的某些内容时,可以使用服务器资源管理器更改项目文件夹中的副本。因此,在下一个 VS 会话开始时,将在输出文件夹中复制该文件的新副本。当您需要分发应用时,可以在项目文件夹中分发 MDF 文件。

当然,如果需要检查数据库的工作副本中发生的情况,则可以在服务器资源管理器中创建指向工作文件夹中的 MDF 文件的新连接。

如果您需要更多控制,则可以更改替换字符串 |数据目录|点。


查看完整回答
反对 回复 2024-01-20
  • 1 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信