用公司系统批量发送道具,带分页填充dataset

来源:互联网 发布:手机透明桌面软件 编辑:程序博客网 时间:2024/04/28 23:14
try { this.listView1.Items.Clear(); string Path = this.txtFileName.Text.ToString();//设置导入文件地址 DataSet ds = null;//清空DataSet string strall = null; string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";//数据库连接字符串 OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null;//Command OLEDB适配器 ds = new DataSet(); strExcel = "select * from [Sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); //myCommand.Fill(ds);//填充DataSet //表counts用于计算记录总数 myCommand.Fill(ds, "counts"); if (txtTheme.Text.Trim().Length == 0) { MessageBox.Show("请输入主题!"); return; } if (txtReason.Text.Trim().Length == 0) { MessageBox.Show("请输入内容"); return; } button2.Enabled = false; result = ""; CEnum.Message_Body[] mContent = new CEnum.Message_Body[5]; //计算记录总数 int rowscount = ds.Tables["counts"].Rows.Count; int rowstart; for (int i = 0; i <= rowscount/50; i++) { rowstart = i*50; myCommand.Fill(ds, rowstart, 50, i.ToString()); for (int j = rowstart; j < ds.Tables[i.ToString()].Rows.Count; j++) { if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[3].ToString()) == 1) { if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) == -1 || int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) > 0 && int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) <= 30000) { //if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) == -1) // ds.Tables[i.ToString()].Rows[j][5] = DateTime.Parse("2050-1-1").ToString(); //else //ds.Tables[i.ToString()].Rows[j][5]= DateTime.Now.AddDays(int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString())).ToString(); //ds.AcceptChanges();//这句最关键,完成修改,做用是允许对DATASET的修改 } else { ListViewItem aa = new ListViewItem(new string[] { ds.Tables[i.ToString()].Rows[j].ItemArray[0].ToString(), "期限数量不正确" }); this.listView1.Items.Insert(0, aa); ds.Tables[i.ToString()].Rows[j].Delete(); continue; } if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[4].ToString()) == -1 || int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[4].ToString()) > 0 && int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[4].ToString()) <= 30000) { //if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) == -1) // ds.Tables[i.ToString()].Rows[j][5] = DateTime.Parse("2050-1-1").ToString(); //else // ds.Tables[i.ToString()].Rows[j][5] = DateTime.Now.AddDays(int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString())).ToString(); //ds.AcceptChanges();//这句最关键,完成修改,做用是允许对DATASET的修改 } else { ListViewItem aa = new ListViewItem(new string[] { ds.Tables[i.ToString()].Rows[j].ItemArray[0].ToString(), "次数数量不正确" }); this.listView1.Items.Insert(0, aa); ds.Tables[i.ToString()].Rows[j].Delete(); continue; } } else if (int.Parse(ds.Tables[i.ToString()].Rows[i].ItemArray[3].ToString()) == 2) { if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[4].ToString()) == -1 || int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[4].ToString()) > 0 && int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[4].ToString()) <= 30000) { //if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) == -1) // ds.Tables[i.ToString()].Rows[j][5] = DateTime.Parse("2050-1-1").ToString(); //else // ds.Tables[i.ToString()].Rows[j][5] = DateTime.Now.AddDays(int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString())).ToString(); //ds.AcceptChanges();//这句最关键,完成修改,做用是允许对DATASET的修改 } else { ListViewItem aa = new ListViewItem(new string[] { ds.Tables[i.ToString()].Rows[j].ItemArray[0].ToString(), "次数数量不正确" }); this.listView1.Items.Insert(0, aa); ds.Tables[i.ToString()].Rows[j].Delete(); continue; } if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) == -1 || int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) > 0 && int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) <= 30000) { //if (int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString()) == -1) // ds.Tables[i.ToString()].Rows[j][5] = DateTime.Parse("2050-1-1").ToString(); //else //ds.Tables[i.ToString()].Rows[j][5]= DateTime.Now.AddDays(int.Parse(ds.Tables[i.ToString()].Rows[j].ItemArray[5].ToString())).ToString(); //ds.AcceptChanges();//这句最关键,完成修改,做用是允许对DATASET的修改 } else { ListViewItem aa = new ListViewItem(new string[] { ds.Tables[i.ToString()].Rows[j].ItemArray[0].ToString(), "期限数量不正确" }); this.listView1.Items.Insert(0, aa); ds.Tables[i.ToString()].Rows[j].Delete(); continue; } } } //StringBuilder content = new StringBuilder(); //StringWriter writer = new StringWriter(content); //XmlTextWriter xmlWriter = new XmlTextWriter(writer); //ds.WriteXml(xmlWriter); StringBuilder content = new StringBuilder(); StringWriter writer = new StringWriter(content); XmlTextWriter xmlWriter = new XmlTextWriter(writer); //DataSet dsxml = new DataSet(); //dsxml.Tables.Add(dt.Copy()); ds.Tables[i.ToString()].WriteXml(xmlWriter); mContent[0].eName = CEnum.TagName.SDO_ServerIP; mContent[0].eTag = CEnum.TagFormat.TLV_STRING; mContent[0].oContent = Operation_SDO.GetItemAddr(mServerInfo, CmbServer.Text); mContent[1].eName = CEnum.TagName.UserByID; mContent[1].eTag = CEnum.TagFormat.TLV_INTEGER; mContent[1].oContent = int.Parse(m_ClientEvent.GetInfo("USERID").ToString()); mContent[2].eName = CEnum.TagName.SDO_Title; mContent[2].eTag = CEnum.TagFormat.TLV_STRING; mContent[2].oContent = this.txtTheme.Text.ToString(); mContent[3].eName = CEnum.TagName.SDO_Context; mContent[3].eTag = CEnum.TagFormat.TLV_STRING; mContent[3].oContent = this.txtReason.Text.ToString(); mContent[4].eName = CEnum.TagName.SDO_Account; mContent[4].eTag = CEnum.TagFormat.TLV_STRING; mContent[4].oContent = content.ToString(); lock (typeof(C_Event.CSocketEvent)) { mResult = Operation_SDO.GetResult(this.m_ClientEvent, CEnum.ServiceKey.SDO_BatchItemShop_Insert, mContent); } if (mResult[0, 0].eName == CEnum.TagName.ERROR_Msg) { MessageBox.Show(mResult[0, 0].oContent.ToString()); //ListViewItem aa = new ListViewItem(new string[] { ds.Tables[i.ToString()].Rows[j].ItemArray[0].ToString(), "添加失败!" }); //this.listView1.Items.Insert(0, aa); //ds.Tables[i.ToString()].Rows[j].Delete(); return; } else { this.button2.Enabled = true; } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); }先进行读取 excel,再填充dataset的每个表,然后根据表在筛选合格的行进行发送。