日期:2014-05-17  浏览次数:20726 次

用OLEDB删除一条记录的问题
小子新学c#和oledb,最近小子在用OLEDB操作excel,发现一个问题,如果表不是常规的EXCEL表格(比如有合并的单元格)那么执行细致查询的时间,oledb的sql语句会通不过,总是报缺少参数什么的

PS:细致的意思是,如果执行 select * from table,这样是不是细致,select * from table
                where F1=‘NAME’    类似这样的是我要说的细致查询

后来小弟突然突发奇想,我操作的EXCEL其实就是第一行有合并的单元格,而下面的都是没有合并的,那么如果我至少要单纯的执行查询任务的话,是不是可以把记录集的第一行想办法删掉,那么下面的就可以查询了

各位大大别急,麻烦看下我下面可能本身就是错误的语句

//这句执行不通过,不懂的地方在F1这个字段处应该改为什么?我将‘F1’改为 ‘*’试过,语句通不过
//这条语句其实表达的意思是:除前面2条记录外的所有的其他记录被选择
"SELECT * FROM [" + table + "] WHERE F1 NOT IN (SELECT TOP 2 F1 FROM [" + table + "])";
//////////////////////////////////////////////////////////////////////////////
//下面代码大约一看,有疑问的地方,我单独注视了
//////////////////////////////////////////////////////////////////////////////

            string strCom = " SELECT * FROM [" + table + "] ";
            string strTab="["+table +"]";
            //string strCom = "SELECT * FROM [" + table  + "] WHERE F1 NOT IN (SELECT TOP 2 F1 FROM [" + table + "])";
            //string strCom = "SELECT TOP 5 * FROM [" + table  + "]";
            DataSet ds;
            ds = new DataSet();
            OleDbCommand myComd;
           

            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, g_SouceConn);
            //myCommand.DeleteCommand = new OleDbDataAdapter("DELETE TOP (5)  FROM " + strTab, ts).DeleteCommand;

            myCommand.DeleteCommand = new OleDbCommand("DELETE * FROM " + strTab, g_SouceConn);
            
            try