C# 方法正在更新数据集,但不更新基础数据库,为什么?
我有一个类型为Windows窗体I Visual Studio 2010 Express的项目 我已经创建了一个基于服务的本地数据库,能够在我的表单上的文本框中显示它的数据,并通过按钮“下一步”和“上一步”跳过每个记录。所以我有一个到数据库的连接 但是,当我单击“保存”按钮时,希望使用文本框中的数据更新数据库时,数据仅存储在数据集中,并在我使用按钮到达文本框位置时显示在文本框中,而不存储在数据库中。下一次打开应用程序时,新的“存储”记录将因此消失 知道我的代码中的错误在哪里吗?非常感谢 以下是Form1.cs文件中“我的保存”按钮的代码:C# 方法正在更新数据集,但不更新基础数据库,为什么?,c#,ado.net,sql-update,dataset,C#,Ado.net,Sql Update,Dataset,我有一个类型为Windows窗体I Visual Studio 2010 Express的项目 我已经创建了一个基于服务的本地数据库,能够在我的表单上的文本框中显示它的数据,并通过按钮“下一步”和“上一步”跳过每个记录。所以我有一个到数据库的连接 但是,当我单击“保存”按钮时,希望使用文本框中的数据更新数据库时,数据仅存储在数据集中,并在我使用按钮到达文本框位置时显示在文本框中,而不存储在数据库中。下一次打开应用程序时,新的“存储”记录将因此消失 知道我的代码中的错误在哪里吗?非常感谢 以下是F
private void btnSave_Click(object sender, EventArgs e)
{
DataRow row = ds.Tables[0].NewRow();
row[1] = textBox1.Text;
row[2] = textBox2.Text;
row[3] = textBox3.Text;
row[4] = textBox4.Text;
ds.Tables[0].Rows.Add(row);
try
{
objConnect.UpdateDatabase(ds);
MaxRows += 1;
inc = MaxRows - 1;
MessageBox.Show("Database updated");
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
btnCancel.Enabled = false;
btnSave.Enabled = false;
btnAddNew.Enabled = true;
}
下面是我的类数据库连接的代码:
class DatabaseConnection
{
private string sql_string;
private string strCon;
private SqlDataAdapter da_1;
public string Sql { set { sql_string = value; } }
public string connection_string { set { strCon = value; } }
public DataSet GetConnection { get { return MyDataSet(); } }
private DataSet MyDataSet()
{
SqlConnection con = new SqlConnection(strCon);
con.Open();
da_1 = new SqlDataAdapter(sql_string, con);
DataSet dat_set = new System.Data.DataSet();
da_1.Fill(dat_set, "Table_Data_1");
con.Close();
return dat_set;
}
public void UpdateDatabase(System.Data.DataSet ds)
{
SqlCommandBuilder cb = new SqlCommandBuilder(da_1);
cb.DataAdapter.Update(ds.Tables[0]);
}
}
如果数据库是作为项目的一部分创建的数据库;每次运行时都会将其复制到bin文件夹,然后会更新bin文件夹中的版本;但是,当您再次运行时,源版本会再次复制到bin文件夹,过度写入以前的内容(即丢失更改)。你能确认你数据库的路径吗?你好。是的,在这里:数据库“Database1”与Program.cs文件和Form1.cs文件放在同一个文件夹中。这是bin文件夹上方的一个级别。在bin文件夹中存储的Debug文件夹中,有一个Database1的副本,还有Database1\u log.Ok。。您可以通过运行该程序来测试数据库写入是否正常工作;做改变;然后退出。现在进入bin文件夹,通过exe文件直接运行程序;您的更改生效了吗?或者,您可以通过在bin目录中打开到db的新数据库连接并查看其中的数据来进行测试。如果这一切都是好的;那么问题就是每次都要复制数据库。若要更改,请将数据库放在一个单独的文件夹中,并将连接字符串改为指向该文件夹。谢谢您的建议,我将尝试这样做。