日志解析+调用WebService服务保存至数据库,再调用服务查询数据
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ServiceReference1.WebService1SoapClient ws = new ServiceReference1.WebService1SoapClient();
string sWhere = "";
if (textBox1.Text != "")
{
sWhere +=" AND [USER] = "" +textBox1.Text+""";
}
else
{
MessageBox.Show("此字段为必填项!");
textBox1.Focus();
return;
}
if (dateTimePicker1.Text != "")
{
sWhere += " AND CONVERT(varchar(100), DATE_TIME,105)> "" + dateTimePicker1.Value.ToString("yyyy-MM-dd hh:mm:ss") + """;
}
if (dateTimePicker1.Text == "")
{
sWhere += " AND CONVERT(varchar(100), DATE_TIME,105)<"" + dateTimePicker2.Value.ToString("yyyy-MM-dd hh:mm:ss") + """;
}
sWhere += " order by DATE_TIME";
ServiceReference1.LOCATION[] arrLocation = ws.GetLOCATIONList(sWhere);
dataGridView1.DataSource = arrLocation;
}
public static void SaveLogText()
{
List<string[]> listUser = new List<string[]>();
List<string[]> listLocation = new List<string[]>();
//List<FileInfo> listFile = GetFilesName();
//foreach (FileInfo fileInfo in listFile)
//{
// if (fileInfo.FullName.ToLower().Contains("log*.txt"))
// {
string text = System.IO.File.ReadAllText(@"D:TESTLogUser.txt", Encoding.UTF8);
string[] arrRow = text.Split(new string[] { "
" }, StringSplitOptions.None);
List<string> listUserTemp = new List<string>();
ServiceReference1.WebService1SoapClient ws = new ServiceReference1.WebService1SoapClient();
Dictionary<string,string> DicDevUser = new Dictionary<string,string>();
string sUserTemp = "";
string sDevIDTemp = "";
//int countLocationChange = 0;//记录
foreach (string sRow in arrRow)
{
//
int indexID = sRow.IndexOf("ID:");
int indexUSER = sRow.IndexOf("用户:");
int indexNORT = sRow.IndexOf("北纬:");
int indexEAST = sRow.IndexOf("东经:");
int index = sRow.IndexOf(" ");
if (sRow.Contains("上线") && sRow.Contains("用户"))
{
sUserTemp = sRow.Substring(indexUSER + 3, 11);
sDevIDTemp = sRow.Substring(indexID + 3, 4);//设备IDindexID
DicDevUser.Add(sDevIDTemp,sUserTemp);
}
else if (sRow.Contains("离线") && sRow.Contains("用户"))
{
sDevIDTemp = sRow.Substring(indexID + 3, 4);//设备IDindexID
DicDevUser.Remove(sDevIDTemp);
}
string sDateTime = sRow.Substring(0, index);
string sDevID = sRow.Substring(indexID + 3,4 );//设备IDindexID + 5
string[] arrUser = new string[4];
string[] arrLocation = new string[5];
if (sRow.Contains("用户"))
{
string sStatus = sRow.Substring(index + 1, 2);//index + 3
string sUser = sRow.Substring(indexUSER + 3, 11);//用户
arrUser.SetValue(sDateTime, 0);
arrUser.SetValue(sStatus, 1);
arrUser.SetValue(sDevID, 2);
arrUser.SetValue(sUser, 3);
listUser.Add(arrUser);
}
else
{
string sNORT = sRow.Substring(indexNORT + 3, 9);//北纬
string sEAST = sRow.Substring(indexEAST + 3, 14);//东经
arrLocation.SetValue(sDateTime, 0);
arrLocation.SetValue(sDevID, 1);
arrLocation.SetValue(sNORT, 2);
arrLocation.SetValue(sEAST, 3);
string sUser1 = DicDevUser.FirstOrDefault(t => t.Key == sDevID).Value;
arrLocation.SetValue(string.IsNullOrEmpty(sUser1) == true ? " " : sUser1, 4);
listLocation.Add(arrLocation);
}
}
int countOn = 0;//统计上下线总次数
foreach (string[] item in listUser)
{
SqlParameter[] para = {
new SqlParameter("@DATE_TIME",SqlDbType.DateTime),
new SqlParameter("@STATUS",SqlDbType.VarChar,50),
new SqlParameter("@RES_ID",SqlDbType.VarChar,50),
new SqlParameter("@USER",SqlDbType.VarChar,50),
new SqlParameter("@NORTERN",SqlDbType.VarChar,50),
new SqlParameter("@EAST",SqlDbType.VarChar,50)
};
para[0].Value = item[0].ToString();
para[1].Value = item[1].ToString();
para[2].Value = item[2].ToString();
para[3].Value = item[3].ToString();
para[4].Value = " ";
para[5].Value = " ";
int iResult = DBHelper.ExecuteDataPara("insert into T_LOCATION (DATE_TIME,STATUS,RES_ID,[USER],NORTERN,EAST) values (@DATE_TIME,@STATUS,@RES_ID,@USER,@NORTERN,@EAST)", para);
countOn += iResult;
}
int countLocation = 0; //统计更新位置次数
foreach (string[] item in listLocation)
{
SqlParameter[] para = {
new SqlParameter("@DATE_TIME",SqlDbType.DateTime),
new SqlParameter("@RES_ID",SqlDbType.VarChar,50),
new SqlParameter("@NORTERN",SqlDbType.VarChar,50),
new SqlParameter("@EAST",SqlDbType.VarChar,50),
new SqlParameter("@USER",SqlDbType.VarChar,50),
new SqlParameter("@STATUS",SqlDbType.VarChar,50)
};
para[0].Value = item[0].ToString();
para[1].Value = item[1].ToString();
para[2].Value = item[2].ToString();
para[3].Value = item[3].ToString();
para[4].Value = item[4].ToString();
para[5].Value = "更新位置";
int iResult = DBHelper.ExecuteDataPara("insert into T_LOCATION (DATE_TIME,RES_ID,NORTERN,EAST,[USER],STATUS) values (@DATE_TIME,@RES_ID,@NORTERN,@EAST,@USER,@STATUS)", para);
countLocation += iResult;
}
//}
//}
//return;
}
public static List<FileInfo> GetFilesName()
{
DirectoryInfo dir = new DirectoryInfo("D:\TEST");
FileInfo[] files = dir.GetFiles();
List<FileInfo> listFile = new List<FileInfo>();
for (int i = 0; i < files.Length; i++)
{
listFile.Add(files[i]);
}
return listFile;
}
public static void test()
{
}
public static List<MODEL.LOCATION> GetLOCATIONList(string SWhere)
{
DataSet ds = DBHelper.GetDataSet("select ID, DATE_TIME,RES_ID,[USER] ,STATUS,NORTERN,EAST from T_LOCATION where 1 =1 " + SWhere);
if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
{
MODEL.LOCATION MyUser = null;
List<MODEL.LOCATION> MyUserList = new List<MODEL.LOCATION>();
foreach (DataRow item in ds.Tables[0].Rows)
{
MyUser = new MODEL.LOCATION();
MyUser.ID =Convert.ToInt32( item["ID"].ToString());
MyUser.DATE_TIME = item["DATE_TIME"].ToString();
MyUser.USER = item["USER"].ToString();
MyUser.STATUS = item["STATUS"].ToString();
MyUser.RES_ID = item["RES_ID"].ToString();
MyUser.NORTERN = item["NORTERN"].ToString();
MyUser.EAST = item["EAST"].ToString();
MyUserList.Add(MyUser);
}
return MyUserList;
}
else
{
return null;
}
}
}
}
以上是 日志解析+调用WebService服务保存至数据库,再调用服务查询数据 的全部内容, 来源链接: utcz.com/z/514440.html