读取 IIS日志 到 数据库

 public bool WriteToDB(string file)
        {
            StreamReader myRead = new StreamReader(file);
            DataTable myTable = new DataTable();

            while (!myRead.EndOfStream)
            {
                string line = myRead.ReadLine();
                if (line.StartsWith("#Fields"))
                {
                    if (myTable.Rows.Count > 0)
                    {
                        dataTableToServer(myTable);
                    }
                    myTable = new DataTable();
                    string[] Fields = line.Split(' ');
                    for (int i = 1; i < Fields.Length - 1; i++)
                    {
                        myTable.Columns.Add(Fields[i]);
                    }
                }
                else if (line.StartsWith("#"))
                {
                    continue;
                }
                else
                {
                    string[] contents = line.Split(' ');
                    DataRow myRow = myTable.NewRow();
                    myRow.ItemArray = contents;
                    myTable.Rows.Add(myRow);
                }
            }
            myRead.Close();
//到此,便把日志文件变成DataTable的形式了,下面的是把它写进数据库。
//代码略有删节。
            if (myTable.Rows.Count > 0)
            {
                dataTableToServer(myTable);
            }
            return true;
        }

        private void dataTableToServer(DataTable myTable)
        {
            string connstr = SqlHelper.getConnStr();
            //string connstr = @"Data Source=.\SQLEXPRESS;Initial Catalog=iislog;User Id=sa;Password=sa;pooling=true;Timeout=60";



            foreach (DataColumn col in myTable.Columns)
            {
                resultTable.Columns.Add(col.ColumnName );
            }
         







            using (SqlBulkCopy myBulk = new SqlBulkCopy(connstr))
            {
                myBulk.DestinationTableName = "LogFile";
                foreach (DataColumn myColumn in myTable.Columns)
                {
                    myBulk.ColumnMappings.Add(myColumn.ColumnName, myColumn.ColumnName);
                }
                myBulk.WriteToServer(resultTable);
            }
        }

你可能感兴趣的:(数据库,C#)