代码如下:
public DataSet UpdateByDataSet(DataSet ds)
{
SqlCommand myCommand = new SqlCommand("select * from financetable", conn);
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand );
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand();
myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand();
myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand();
try
{
conn.Open();
myAdapter.Fill(ds);
myAdapter.Update(ds,"financetable" ); //这里报错 Update 无法找到 TableMapping['financetable'] 或 DataTable“financetable”
conn.Close();
}
catch(Exception err)
{
err.ToString();
conn.Close();
}
return ds;
}
public DataSet UpdateByDataSet(DataSet ds)
{
SqlCommand myCommand = new SqlCommand("select * from financetable", conn);
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand );
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand();
myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand();
myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand();
try
{
conn.Open();
myAdapter.Fill(ds);
myAdapter.Update(ds,"financetable" ); //这里报错 Update 无法找到 TableMapping['financetable'] 或 DataTable“financetable”
conn.Close();
}
catch(Exception err)
{
err.ToString();
conn.Close();
}
return ds;
}
myAdapter.Update(ds,"financetable" ); //这里报错 Update 无法找到 TableMapping['financetable'] 或 DataTable“financetable”
DataSet ds = new DataSet();
ds.Tables.Add("financetable");
da.UpdateByDataSet(ds);
程序不报错,但是数据库数据并没有得到修改啊?
myAdapter.Fill(ds); //填充查询数据至数据集
myAdapter.Update(ds,"financetable" ); //Update方法是根据DataTable里的行状态来提交数据的,你的数据自上次填充后,无任何变化(没有新增,也没有删除和修改)。即里面所有行的DataRow.RowState 都是NoChangedDataRow.RowState
数据集连数据都还没有呢绑定什么呢?你先看看你的方法是否能访问DataSet数据集就行了。根据你的方法,你的代码要这样修改:
SqlConnection conn=new SqlConnection(connstr);
DataSet ds=new Dataset();
ds=UpdateByDataSet(ds); //不知道你的方法是怎么写的~~·~~~~~~
写个插入一句执行update肯定没问题
//接下句,绑定界面上的DataGridView控件。。
datagridview1.datasource=ds.tables["financetable"]//中间你要在datagridview更改数据后,再操作这条语句才有效果,这条语句写在[保存更新]的按钮事件中。。
//myAdapter变量应该定义为类变量,声明在页首
//点击保存按钮后执行下句。。
myAdapter.Update(ds,"financetable" );
private void bt_save_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
SqlDataAdapter myAdapter=new SqlDataAdapter();
ds=da.UpdateByDataSet(ds, "financetable");
myAdapter.Update(ds, "financetable");
dataGridView1.DataSource = ds.Tables["financetable"];
}UpdateByDataSet代码:
public DataSet UpdateByDataSet(DataSet ds,string tbname)
{
SqlCommand myCommand = new SqlCommand("select * from financetable", conn);
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand );
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
//DataSet daset=new DataSet();
myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand();
myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand();
myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand();
DataTable tb = null;
tb = ds.Tables["financetable"];
try
{
conn.Open();
myAdapter.Fill(ds,"financetable");
myAdapter.Update(ds, "financetable");
conn.Close();
}
catch(Exception err)
{
err.ToString();
conn.Close();
}
return ds;
}哪里出问题了,貌似是datagridview数据改变后,dataTable值没有变化,要怎么修改?