首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 剔除DataTable中的某一行,但是无法在数据库中更新

2013-03-13 
c# 删除DataTable中的某一行,但是无法在数据库中更新 public void DataBaseDelete(string FieldName, stri

c# 删除DataTable中的某一行,但是无法在数据库中更新

 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
[解决办法]
不能用Remove,那个不是删除,是直接移除,删除必须调用DataRow的Delete方法
[解决办法]
MyDataTable.Rows.Remove 是移除MyDataTable表的数据而对数据库没影响;要想对数据库操作就要执行对应的SQL语句
[解决办法]
可以自动生成SQL语句,不过我一般不会这么做,因为你编写代码的时候看不到生成的语句,万一语句有问题,你根本无从知晓。可以直接在查询管理器里面,鼠标右键点击表名,让它帮你创建插入、更新、删除语句,之后微调,复制到C#里面赋值给Command。如果那个语句含有不少不规范的字符,没关系,写个正则批量替换下即可,我就写过一个正则,需要的话,表达式可以给你。
[解决办法]
DataTable是缓存在内存里面的,你删除他当然没有删除数据库里面的东西了
在应该是删除DataTable的方法里面用ado.net删除数据库里面的数据之后,重新绑定数据

热点排行