[英]c# Visual studio after pubish application generate errors with database
[英]Database will not keep data after app stopped Visual Studio C#
希望有人可以帮助解决这个问题。 以下代码旨在向表中添加条目; 然而,虽然数据是在运行时添加的,但当应用程序关闭时,它就会消失。 数据库设置为“如果较新则复制”。
private void AddToNameList()
{
SqlConnection con = new SqlConnection(connectionString);
cmd = new SqlCommand("INSERT INTO NameSurname VALUES (@NameId, @Surname)", con);
cmd.Parameters.AddWithValue("@NameId", textBox2.Text);
cmd.Parameters.AddWithValue("@Surname", textBox3.Text);
con.Open();
int i= cmd.ExecuteNonQuery();
con.Close();
if (i != 0)
{
MessageBox.Show(i + "Data Saved");
}
textBox2.Clear();
textBox3.Clear();
}
private void button1_Click(object sender, EventArgs e)
{
if(textBox2.Text!= ("") && textBox3.Text!=(""))
{
AddToNameList();
}
else
{
MessageBox.Show("Please enter Name and Surname","Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
消息框确认数据已保存,当我进行搜索时,它就在那里。 但是,当我停止应用程序运行并检查数据库时,数据不存在。
感谢任何帮助。
谢谢
如果要读取 .mdf 文件,必须安装SQL Server Express
或SqlLocalDb runtime
。 并非所有其他用户都愿意下载和安装它们。
要将表保存到数据库中,我认为 SQLite 会是更好的选择。
希望以下步骤可以帮助到您。
首先,使用 NuGet 安装System.Data.SQLite
。
二、在App.config中配置连接字符串。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<connectionStrings>
<add name="SQLiteDbContext" connectionString="Data Source=MyDatabase.sqlite" providerName="System.Data.SQLite.EF6" />
</connectionStrings>
</configuration>
第三,您可以使用以下代码来创建/插入/读取数据库/数据表。
// create
SQLiteConnection.CreateFile("MyDatabase.sqlite");
SQLiteConnection con = new SQLiteConnection("Data Source=MyDatabase.sqlite");
con.Open();
string sql = "create table NameSurname (Nameid varchar(20), Surname varchar(20))";
SQLiteCommand command = new SQLiteCommand(sql, con);
command.ExecuteNonQuery();
// insert
SQLiteCommand cmd = new SQLiteCommand("INSERT INTO NameSurname VALUES (@NameId, @Surname)", con);
cmd.Parameters.AddWithValue("@NameId", textBox2.Text);
cmd.Parameters.AddWithValue("@Surname", textBox3.Text);
cmd.ExecuteNonQuery();
// read
SQLiteCommand sqlCom = new SQLiteCommand("Select * From NameSurname", con);
SQLiteDataReader sqlDataReader = sqlCom.ExecuteReader();
int i = 1;
while (sqlDataReader.Read())
{
listBox1.Items.Add(i);
listBox1.Items.Add(sqlDataReader.GetValue(0));
listBox1.Items.Add(sqlDataReader.GetValue(1));
i++;
}
con.Close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.