【发布时间】:2014-04-04 19:14:18
【问题描述】:
我正在尝试使用 ODBC 向 PostgreSQL 数据库中的表中添加一行。尽管没有抛出异常,但该行并未添加到表中。这是我的代码:
void TestNewRow()
{
try
{
DataSet dataSet = new DataSet();
OdbcDataAdapter adapter = new OdbcDataAdapter();
adapter.SelectCommand =
new OdbcCommand("select read_time from plant_genie.plc_values_by_tag", m_db.GetConnection());
OdbcCommandBuilder builder =
new OdbcCommandBuilder(adapter);
adapter.Fill(dataSet);
DataTable valuesTable = dataSet.Tables[0];
DataRow newRow = valuesTable.NewRow();
newRow["read_time"] = DateTime.Now;
valuesTable.Rows.Add(newRow);
valuesTable.AcceptChanges();
dataSet.AcceptChanges();
adapter.Update(dataSet);
}
catch (Exception ex)
{
int a = 1;
}
}
我在异常处理程序中有一个断点,在函数末尾有另一个断点。第二个断点被命中,但不是第一个,所以不会抛出异常。我已经三重检查了我正在连接到正确的数据库。我不认为我应该需要两个 AcceptChanges() 调用和一个 Update() 调用,但即使使用了所有这些矫枉过正,我仍然没有在我的表中获得新行。我做错了什么?
我试图找到这个问题的副本,但是关于添加行的问题太多了,如果有重复,它就会被隐藏。
感谢您的帮助。
罗伯R
【问题讨论】:
标签: c# datatable ado.net dataset dataadapter