我最近刚接触C#,并按照有关数据库连接的教程进行操作,可以进行查看或SELECT
命令的连接,我根据论坛的线程进行了一些修订,以使我的代码更好,但是当INSERT
我使用SQL时服务器,我有一些问题。我能够插入数据,但是当我重新运行程序时,我刚才插入的数据不在数据库中。
这是我的插入代码
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()
呼叫上放置一个断点-然后.mdf
使用SQL Server Mgmt Studio Express检查文件-我几乎可以确定您的数据在那里。
我认为长期可行的解决方案是:
安装SQL Server Express(并且您已经完成了此操作)
安装SQL Server Management Studio Express
在SSMS Express中创建数据库,并为其指定一个逻辑名称(例如YourDatabase
)
使用其逻辑数据库名称(在服务器上创建时提供)连接到该数据库-并且不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:
Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
和其他一切是完全相同像以前一样...
另请参阅亚伦·伯特兰德(Aaron Bertrand)出色的博客文章不良习惯:使用AttachDbFileName获取更多背景信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句