应用实例三

来源:互联网 发布:名器哪款接近真人知乎 编辑:程序博客网 时间:2024/04/29 14:35
举一反三根据本实例,读者可以实现以下功能。利用短信实现客户资料查询。保险行业中:保单查询、续费提醒、客户生日提醒和保费计算等。实例433 短信息采集烟草销售数据实例说明在各类销售行业中,产品销售数据量是企业不可缺少的一项数据。当销售人员在外地出差并且在没有计算机的情况下,如何及时的将销售数据汇报到公司中呢?本例实现利用短信息采集烟草销售数据的功能。销售人员根据规定的格式编辑短信发送到短信息猫中即可。运行程序,单击【烟草销售信息采集】按钮采集烟草销售数据,然后单击【统计】按钮,将销售数据整理出来。如图13.17所示。技术要点相关函数请参见实例“利用短信猫收发短信息”中的技术要点。另外,程序规定的编辑短信息格式为,以冒号“:”分隔并结束。例如“张三:业务员:12:长春:3400:”。其中,主要使用String.Split( )方法将信息数据拆分。 图13.17 短信息采集烟草销售数据String.Split( )方法:返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。语法:public string[] Split ( params char[] separator)参数说明如下。l separator:分隔此实例中子字符串的 Unicode 字符数组,不包含分隔符的空数组或空引用。 l 返回值:一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。实现过程(1)新建一个项目,命名为Ex13_16,默认窗体为Form1。(2)在Form1窗体中,主要添加TextBox控件和Label控件,控件的数量及用途如图13.17所示,添加3个Button控件,分别用于发送短信息、采集销售数据和整理采集数据,添加两个DataGridView表格,分别用于显示短信息内容和整理后的销售数据。(3)主要程序代码。单击【烟草销售信息采集】按钮,接受短信息并保存到数据库中。代码如下: private void btnResvice_Click(object sender, EventArgs e) { //连接设备 if (GMS.GSMModemInitNew(txtCOM.Text, txtBTL.Text, null, null, false, txtPower.Text) == false) { MessageBox.Show("连接失败!" + GMS.GSMModemGetErrorMsg(), "提示", MessageBoxButtons.OK); return; } //接收短信 string content = GMS.GSMModemSMSReadAll(0); if (content ==null) { this.getMessage(); return; } content= content.Replace("||", "|"); // 替换||为| string[] str_sp = content.Split('|');// 进行分离 int k=0; dataGridView1.ColumnCount = 2; dataGridView1.RowCount = str_sp.Length / 2; dataGridView1.Columns[0].HeaderText = "手机号码"; dataGridView1.Columns[1].HeaderText = "短信息"; for (int i = 0; i < str_sp.Length / 2; i++) { for (int j = 0; j < 2; j++) { dataGridView1[j, i].Value = str_sp[k]; if (k % 2 != 0) this.InsertMessage("insert into RecivedBox (Mobile,Content,reciveTime)values('" + Convert.ToString(dataGridView1[0, i].Value) + "','" + Convert.ToString(dataGridView1[1, i].Value) + "','" + DateTime.Now.ToString() + "') "); k++; } } this.getMessage(); }自定义方法getSplitMessage()用来拆分短信息并且整理为正规数据。代码如下: private void getSplitMessage() { string content = ""; for (int i = 0; i < dataGridView1.Rows.Count; i++) { content = content + Convert.ToString(dataGridView1["短信息", i].Value); } string[] str_sp = content.Split(':');// 进行分离 int k = 0; dataGridView2.ColumnCount = 5; dataGridView2.RowCount = str_sp.Length/5 ; dataGridView2.Columns[0].HeaderText = "姓名"; dataGridView2.Columns[1].HeaderText = "职务"; dataGridView2.Columns[2].HeaderText = "月份"; dataGridView2.Columns[3].HeaderText = "销售地区"; dataGridView2.Columns[4].HeaderText = "销售数量"; for (int i = 0; i < str_sp.Length / 5; i++) { for (int j = 0; j < 5; j++) { dataGridView2[j, i].Value = str_sp[k]; k++; } } }自定义InsertMessage()方法,将接受的短信息保存到数据库中。代码如下: private void InsertMessage(string strSql) { //将短信息内容添加到数据库中 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "message.mdb" + ";Persist Security Info=False"); con.Open(); OleDbCommand cmd = new OleDbCommand(strSql, con); cmd.ExecuteNonQuery(); con.Close(); }自定义getMessage()方法,获取数据库中所有的短信息数据。代码如下: private void getMessage() { OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "message.mdb" + ";Persist Security Info=False"); OleDbDataAdapter dap = new OleDbDataAdapter("select mobile as 手机号码,content as 短信息,reciveTime as 日期 from RecivedBox", con); DataSet ds = new DataSet(); dap.Fill(ds); dataGridView1.DataSource = ds.Tables[0].DefaultView; }调用自定义getSplitMessage()方法,将整理后的销售数据显示在DataGridView表格中。代码如下: private void btnFind_Click(object sender, EventArgs e) { if(dataGridView1.Rows.Count>0) this.getSplitMessage(); }
原创粉丝点击