gpt4 book ai didi

C#无法向SQL Server数据库中插入数据

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:29 24 4
gpt4 key购买 nike

我最近刚接触C#,按照教程连接数据库,查看连接或SELECT命令没问题,我根据论坛的帖子做了一些修改,使我的代码更好,但是当我在 SQL Server 的 INSERT 中时,我遇到了一些问题。我能够插入数据,但是当我重新运行程序时,我刚才插入的数据不在数据库中。

这是我插入的代码

string commandText = "INSERT INTO loginInfo (name, pass, role) VALUES(@name, @pass, @role)";

using (connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(commandText, connection);
command.CommandType = CommandType.Text;

command.Parameters.AddWithValue("@name", textBox1.Text);
command.Parameters.AddWithValue("@pass", textBox2.Text);
command.Parameters.AddWithValue("@role", textBox3.Text);

try
{
command.Connection.Open();
command.ExecuteNonQuery();
}
catch
{
}
finally
{
command.Connection.Close();
}
}

我正在尝试创建一个简单的 CRUD 但不保存数据...请帮忙

最佳答案

如果您在连接字符串中使用 AttachDbFileName= 子句,您可能已经成为一个众所周知问题的受害者:您可能只是在查看错误的数据库(文件) 在检查您的数据时。

在 Visual Studio 中运行您的应用时,它会复制 .mdf 文件(从您的 App_Data 目录到输出目录 - 通常是 .\bin\debug - 你的应用程序运行的地方)并且很可能,你的 INSERT 工作得很好 - 但你只是在看错误的 . mdf文件到底!

如果您想坚持使用这种方法,请尝试在 connection.Close() 调用上放置一个断点 - 然后使用 SQL Server 检查 .mdf 文件Mgmt Studio Express - 我几乎可以肯定你的数据就在那里。

在我看来,长期可行的解决方案是:

  1. 安装 SQL Server Express(无论如何您已经完成了)

  2. 安装 SQL Server Management Studio Express

  3. SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如 YourDatabase)

  4. 使用其逻辑数据库名称(在服务器上创建它时给出)连接到它 - 不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True

    其他一切都完全和以前一样...

另请参阅 Aaron Bertrand 的优秀博客文章 Bad habits to kick: using AttachDbFileName了解更多背景信息。

关于C#无法向SQL Server数据库中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37181527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com