public void DataBaseDelete(string FieldName, string FieldValue, string DataTableName)
{
if (this.OleDbCommandString != null && this.ConnectionString != null)
{
MyConnection = new OleDbConnection(_ConnectionString);
MyDataAdapter = new OleDbDataAdapter(_OleDbCommandString, MyConnection); MyDataSet = new DataSet();
MyDataAdapter.Fill(MyDataSet, DataTableName);
MyDataTable = MyDataSet.Tables[DataTableName];
DataRow[] Dr = MyDataTable.Select(FieldName + "=" + FieldValue);
if (Dr.Length > 0)
{
foreach (DataRow Dr1 in Dr)
{
MyDataTable.Rows.Remove(Dr1);
}
}
try
{
MyDataAdapter.Update(MyDataSet, DataTableName);
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
} }
else
{
MessageBox.Show("您没有设置OleDbCommandString和ConnectionString属性", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}我设置断点调试,DataTable中的删除了,但是往数据库更新不了啊,是不是缺少什么啊c#数据库DataTable
{
if (this.OleDbCommandString != null && this.ConnectionString != null)
{
MyConnection = new OleDbConnection(_ConnectionString);
MyDataAdapter = new OleDbDataAdapter(_OleDbCommandString, MyConnection); MyDataSet = new DataSet();
MyDataAdapter.Fill(MyDataSet, DataTableName);
MyDataTable = MyDataSet.Tables[DataTableName];
DataRow[] Dr = MyDataTable.Select(FieldName + "=" + FieldValue);
if (Dr.Length > 0)
{
foreach (DataRow Dr1 in Dr)
{
MyDataTable.Rows.Remove(Dr1);
}
}
try
{
MyDataAdapter.Update(MyDataSet, DataTableName);
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
} }
else
{
MessageBox.Show("您没有设置OleDbCommandString和ConnectionString属性", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}我设置断点调试,DataTable中的删除了,但是往数据库更新不了啊,是不是缺少什么啊c#数据库DataTable
还有我更新的时候不使用DeleteCommand,是不是必须要CommandBuilder
在应该是删除DataTable的方法里面用ado.net删除数据库里面的数据之后,重新绑定数据
还要重新绑定?怎么绑定啊,用DataAdapter.Fill()方法吗
你删除的只是内存中的,具体需要操作数据库,那还要写sql语句进行操作。
public int SetData(string StrSql)
{
int res = -1;
try
{
SqlOleCon.Open();
SqlOleCmd = new OleDbCommand(StrSql, SqlOleCon);
SqlOleCmd.ExecuteNonQuery();
SqlOleCon.Close();
res = 0;
}
catch(Exception er)
{
SqlOleCon.Close();
}
return res;
}
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
用SqlDataAdapter这个类的对象的Update方法就可以更新到数据库了