c#操作数据库问题
我调用OleDbCommand的ExecuteNonQuery对数据库做了删除操作.如何同步DataTable? 问题点数:20、回复次数:14Top
1 楼Knight94(愚翁)回复于 2006-07-01 08:37:43 得分 20
to 我调用OleDbCommand的ExecuteNonQuery对数据库做了删除操作.如何同步DataTable
如果你是用DataAdapter来通过DataTable更新数据库的话,你可以调用DataTable.AcceptChanges即可;
否则需要重新Fill。Top
2 楼tsys2000(☆唐僧☆)回复于 2006-07-01 09:34:42 得分 0
DataTable myT = (DataTable) dataGridx.DataSource;
if(myT.Rows.Count<1)
return;
string strKey = (string)dataGridx[dataGridx.CurrentCell.RowNumber,0];
OleDbConnection myConn = new OleDbConnection(GetConnectionString());
myConn.Open();
string myTableName = "我的表1";
OleDbCommand myCom = new OleDbCommand("DELETE FROM " + myTableName +
" WHERE 我的索引 = ?", myConn);
myCom.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID").Value = strKey;
try
{
myCom.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
如何同步上面的myT???Top
3 楼tsys2000(☆唐僧☆)回复于 2006-07-01 09:42:20 得分 0
上面的表通过如下方式填充
OleDbConnection myConn = new OleDbConnection(GetConnectionString());
OleDbDataAdapter custDA = new OleDbDataAdapter();
custDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
string myTableName = "我的表1";
string mySelectQuery = "SELECT * FROM " + myTableName;
custDA.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
DataTable myT = new DataTable();
custDA.Fill(myT);
dataGridx.DataSource = myT;
Top
4 楼yumanqing(笨鸟)回复于 2006-07-01 09:43:23 得分 0
刷新显示,
DataTable myT = (DataTable) dataGridx.DataSource
即可Top
5 楼tsys2000(☆唐僧☆)回复于 2006-07-01 09:47:32 得分 0
如何刷新?给个代码呀?Top
6 楼kssys()回复于 2006-07-01 09:54:46 得分 0
用Command删除哪一行,在DataTable相应的删除,然后调用相应的方法。
myT.Rows[?].Delete();
myT.AcceptChange();Top
7 楼diandian82(点点(nothing))回复于 2006-07-01 09:57:06 得分 0
只能重新fill,或者你直接在数据集里面删除,然后updateTop
8 楼tsys2000(☆唐僧☆)回复于 2006-07-01 10:02:22 得分 0
操作者要是点击DataGrid的标题后重新排序,DataGrid和DataTable的index就不对应了..用myT.Rows[?].Delete();不行吧Top
9 楼tsys2000(☆唐僧☆)回复于 2006-07-01 10:06:05 得分 0
重新Fill是什么意思?在删除的后面加上
custDA.Fill(myT);
custDA.Update(myT);
Top
10 楼tsys2000(☆唐僧☆)回复于 2006-07-01 10:08:25 得分 0
我想实现的功能是,选中DataGrid的一行后,点击Button把这行删除(显示和数据库更新).Top
11 楼kssys()回复于 2006-07-01 10:37:36 得分 0
不一定要重新Fill
确定选中的行位置,然后调用该行的Delete方法。
接着使用DataTable.AcceptChange方法。Top
12 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2006-07-01 11:12:30 得分 0
DataTable.AcceptChanges()Top
13 楼yuanarea(Sail before)回复于 2006-07-01 11:52:06 得分 0
乱命名的不看...myT 怎么看怎么象 C++模版,仔细一看 MyDataTable,还把Data剩了Top
14 楼zhzuo(秋枫)回复于 2006-07-02 13:51:13 得分 0
建议使用DataAdapter.Update(DataTable )来做。Top




