首页 新闻 会员 周边

C#导入EXCEL到数据库,用OLE连接EXCEL,并创建datatable,但是对datatable进行delete操作时,总是出现与预期

0
[待解决问题]

DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
dt2.Columns.Add("工号");
dt2.Columns.Add("时间");
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; " + "Data Source ="
+ txtPath .Text + ";Extended Properties=Excel 8.0";
OleDbConnection myConn = new OleDbConnection(strCon);
string sql = "select * from [sheet1$A:B]";
int kk = 0;
try
{
myConn.Open();
OleDbDataAdapter oda = new OleDbDataAdapter(sql, myConn);
oda.Fill(ds, "[Sheet1$]");
myConn.Close();
dt1 = ds.Tables[0];
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow dr = dt2.NewRow();
dt2.Rows.Add(dr);
dt2.Rows[i]["工号"] = dt1.Rows[i][0];
dt2.Rows[i]["时间"] = dt1.Rows[i][1];
}

DataRowCollection rows = dt2.Rows;

for (int j = 0; j < dt2.Rows.Count; j++)
{
if (Convert.ToInt32(dt2.Rows[j]["工号"]) == 1001)
{
rows[j].Delete();
}
}
dt2.AcceptChanges();
label1.Text = dt2.Rows.Count.ToString();
//label1.Text = kk.ToString();
this.dataGridView1.DataSource = dt2;
dataGridView1.Columns[1].Width = 200;
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);
}

  读取的表没有问题就是在删除的时候不知道为什么总是达不到预期效果

 

缪健的主页 缪健 | 菜鸟二级 | 园豆:214
提问于:2015-06-02 15:42
< >
分享
所有回答(1)
0

用自带的方式操作excel总是出现各种奇葩错误,推荐你了解下NPOI

Mr_逗逗 | 园豆:288 (菜鸟二级) | 2015-06-03 13:25

意思就是不是代码错误,而是系统的问题了!这样我就放心了

支持(0) 反对(0) 缪健 | 园豆:214 (菜鸟二级) | 2015-06-03 14:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册