asp.net 读取文本文件并插入数据库的实现代码

1,上传txt文件至公司系统
2,读取需要的内容
3,将内容插入到数据库中(需要判断重复)
4,与现有订单数据进行对比
本程序只研究读取需要的内容和插入数据

 

using System; 
using System.Data; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.IO; 
using System.Text; 
using System.Text.RegularExpressions; 
using service.DAL; 
using System.Reflection; 
namespace service.fin 

[Serializable] 
public class SettlementCmbModel 

public SettlementCmbModel() { } 
#region Model 
private int _id; 
private string _terminalno; 
private DateTime? _tradetime; 
private string _batchno; 
private string _channel; 
private string _empowerno; 
private string _orderno; 
private string _cardno; 
private string _cardmark; 
private string _tradetype; 
private string _businesstype; 
private string _goodsno; 
private string _stages; 
private decimal? _tradeamount; 
private decimal? _commissionamount; 
private decimal? _returnfee; 
private decimal? _memberspoint1; 
private decimal? _memberspoint2; 
private decimal? _mpcmbpercent; 
private decimal? _mpvalue; 
private decimal? _realamount; 
/// <summary> 
/// 
/// </summary> 
public int Id 

set { _id = value; } 
get { return _id; } 

/// <summary> 
/// 
/// </summary> 
public string TerminalNo 

set { _terminalno = value; } 
get { return _terminalno; } 

/// <summary> 
/// 
/// </summary> 
public DateTime? TradeTime 

set { _tradetime = value; } 
get { return _tradetime; } 

/// <summary> 
/// 
/// </summary> 
public string BatchNo 

set { _batchno = value; } 
get { return _batchno; } 

/// <summary> 
/// 
/// </summary> 
public string Channel 

set { _channel = value; } 
get { return _channel; } 

/// <summary> 
/// 
/// </summary> 
public string EmpowerNo 

set { _empowerno = value; } 
get { return _empowerno; } 

/// <summary> 
/// 
/// </summary> 
public string OrderNo 

set { _orderno = value; } 
get { return _orderno; } 

/// <summary> 
/// 
/// </summary> 
public string CardNo 

set { _cardno = value; } 
get { return _cardno; } 

/// <summary> 
/// 
/// </summary> 
public string CardMark 

set { _cardmark = value; } 
get { return _cardmark; } 

/// <summary> 
/// 
/// </summary> 
public string TradeType 

set { _tradetype = value; } 
get { return _tradetype; } 

/// <summary> 
/// 
/// </summary> 
public string BusinessType 

set { _businesstype = value; } 
get { return _businesstype; } 

/// <summary> 
/// 
/// </summary> 
public string GoodsNo 

set { _goodsno = value; } 
get { return _goodsno; } 

/// <summary> 
/// 
/// </summary> 
public string Stages 

set { _stages = value; } 
get { return _stages; } 

/// <summary> 
/// 
/// </summary> 
public decimal? TradeAmount 

set { _tradeamount = value; } 
get { return _tradeamount; } 

/// <summary> 
/// 
/// </summary> 
public decimal? CommissionAmount 

set { _commissionamount = value; } 
get { return _commissionamount; } 

/// <summary> 
/// 
/// </summary> 
public decimal? ReturnFee 

set { _returnfee = value; } 
get { return _returnfee; } 

/// <summary> 
/// 
/// </summary> 
public decimal? MembersPoint1 

set { _memberspoint1 = value; } 
get { return _memberspoint1; } 

/// <summary> 
/// 
/// </summary> 
public decimal? MembersPoint2 

set { _memberspoint2 = value; } 
get { return _memberspoint2; } 

/// <summary> 
/// 
/// </summary> 
public decimal? MPCmbPercent 

set { _mpcmbpercent = value; } 
get { return _mpcmbpercent; } 

/// <summary> 
/// 
/// </summary> 
public decimal? MPValue 

set { _mpvalue = value; } 
get { return _mpvalue; } 

/// <summary> 
/// 
/// </summary> 
public decimal? RealAmount 

set { _realamount = value; } 
get { return _realamount; } 

#endregion Model 

public class SettlementCmbDal 

public SettlementCmbDal() { } 
#region 增加数据 
public static int Add(SettlementCmbModel model) 

StringBuilder strSql 
= new StringBuilder(); 
StringBuilder strSql1 
= new StringBuilder(); 
StringBuilder strSql2 
= new StringBuilder(); 
if (model.TerminalNo != null

strSql1.Append(
"TerminalNo,"); 
strSql2.Append(
"'" + model.TerminalNo + "',"); 

if (model.TradeTime != null

strSql1.Append(
"TradeTime,"); 
strSql2.Append(
"'" + model.TradeTime + "',"); 

if (model.BatchNo != null

strSql1.Append(
"BatchNo,"); 
strSql2.Append(
"'" + model.BatchNo + "',"); 

if (model.Channel != null

strSql1.Append(
"Channel,"); 
strSql2.Append(
"'" + model.Channel + "',"); 

if (model.EmpowerNo != null

strSql1.Append(
"EmpowerNo,"); 
strSql2.Append(
"'" + model.EmpowerNo + "',"); 

if (model.OrderNo != null

strSql1.Append(
"OrderNo,"); 
strSql2.Append(
"'" + model.OrderNo + "',"); 

if (model.CardNo != null

strSql1.Append(
"CardNo,"); 
strSql2.Append(
"'" + model.CardNo + "',"); 

if (model.CardMark != null

strSql1.Append(
"CardMark,"); 
strSql2.Append(
"'" + model.CardMark + "',"); 

if (model.TradeType != null

strSql1.Append(
"TradeType,"); 
strSql2.Append(
"'" + model.TradeType + "',"); 

if (model.BusinessType != null

strSql1.Append(
"BusinessType,"); 
strSql2.Append(
"'" + model.BusinessType + "',"); 

if (model.GoodsNo != null

strSql1.Append(
"GoodsNo,"); 
strSql2.Append(
"'" + model.GoodsNo + "',"); 

if (model.Stages != null

strSql1.Append(
"Stages,"); 
strSql2.Append(
"'" + model.Stages + "',"); 

if (model.TradeAmount != null

strSql1.Append(
"TradeAmount,"); 
strSql2.Append(
"" + model.TradeAmount + ","); 

if (model.CommissionAmount != null

strSql1.Append(
"CommissionAmount,"); 
strSql2.Append(
"" + model.CommissionAmount + ","); 

if (model.ReturnFee != null

strSql1.Append(
"ReturnFee,"); 
strSql2.Append(
"" + model.ReturnFee + ","); 

if (model.MembersPoint1 != null

strSql1.Append(
"MembersPoint1,"); 
strSql2.Append(
"" + model.MembersPoint1 + ","); 

if (model.MembersPoint2 != null

strSql1.Append(
"MembersPoint2,"); 
strSql2.Append(
"" + model.MembersPoint2 + ","); 

if (model.MPCmbPercent != null

strSql1.Append(
"MPCmbPercent,"); 
strSql2.Append(
"" + model.MPCmbPercent + ","); 

if (model.MPValue != null

strSql1.Append(
"MPValue,"); 
strSql2.Append(
"" + model.MPValue + ","); 

if (model.RealAmount != null

strSql1.Append(
"RealAmount,"); 
strSql2.Append(
"" + model.RealAmount + ","); 

strSql.Append(
"insert into CRM_Settlement_CMB("); 
strSql.Append(strSql1.ToString().Remove(strSql1.Length 
- 1)); 
strSql.Append(
")"); 
strSql.Append(
" values ("); 
strSql.Append(strSql2.ToString().Remove(strSql2.Length 
- 1)); 
strSql.Append(
")"); 
strSql.Append(
";select @@IDENTITY"); 
return SqlHelper.ExecuteNonQuery(strSql.ToString()); 

#endregion 
#region 获取model 
public static SettlementCmbModel GetModel(DataRow dr) 

SettlementCmbModel model 
= new SettlementCmbModel(); 
model.TerminalNo 
= dr["TerminalNo"].ToString(); 
if (dr["TradeTime"].ToString() != ""

model.TradeTime 
= DateTime.Parse(dr["TradeTime"].ToString()); 

model.BatchNo 
= dr["BatchNo"].ToString(); 
model.Channel 
= dr["Channel"].ToString(); 
model.EmpowerNo 
= dr["EmpowerNo"].ToString(); 
model.OrderNo 
= dr["OrderNo"].ToString(); 
model.CardNo 
= dr["CardNo"].ToString(); 
model.CardMark 
= dr["CardMark"].ToString(); 
model.TradeType 
= dr["TradeType"].ToString(); 
model.BusinessType 
= dr["BusinessType"].ToString(); 
model.GoodsNo 
= dr["GoodsNo"].ToString(); 
model.Stages 
= dr["Stages"].ToString(); 
if (dr["TradeAmount"].ToString() != ""

model.TradeAmount 
= decimal.Parse(dr["TradeAmount"].ToString()); 

if (dr["CommissionAmount"].ToString() != ""

model.CommissionAmount 
= decimal.Parse(dr["CommissionAmount"].ToString()); 

if (dr["ReturnFee"].ToString() != ""

model.ReturnFee 
= decimal.Parse(dr["ReturnFee"].ToString()); 

if (dr["MembersPoint1"].ToString() != ""

model.MembersPoint1 
= decimal.Parse(dr["MembersPoint1"].ToString()); 

if (dr["MembersPoint2"].ToString() != ""

model.MembersPoint2 
= decimal.Parse(dr["MembersPoint2"].ToString()); 

if (dr["MPCmbPercent"].ToString() != ""

model.MPCmbPercent 
= decimal.Parse(dr["MPCmbPercent"].ToString()); 

if (dr["MPValue"].ToString() != ""

model.MPValue 
= decimal.Parse(dr["MPValue"].ToString()); 

if (dr["RealAmount"].ToString() != ""

model.RealAmount 
= decimal.Parse(dr["RealAmount"].ToString()); 

return model; 

#endregion 

public partial class ReadTxt : System.Web.UI.Page 

protected void Page_Load(object sender, EventArgs e) 


protected void txtInput() 

//反射的方法获取字段 
SettlementCmbModel model = new SettlementCmbModel(); 
PropertyInfo[] obj 
= model.GetType().GetProperties(); 
DataTable dt 
= new DataTable(); 
foreach (PropertyInfo p in obj) 

dt.Columns.Add(p.Name); 

//构造DataRow 
StreamReader sr = new StreamReader(Server.MapPath("text.txt"), System.Text.Encoding.GetEncoding("GB2312")); 
while (!sr.EndOfStream) 

string s = sr.ReadLine(); 
if (s.StartsWith(" NET")) 

= s.Trim(); 
= s.Replace("""-"); 
string[] ss = s.Split(' '); 
object[] datarow = new object[dt.Columns.Count]; 
int i = 0
foreach (string st in ss) 

if (st != ""

datarow[i] 
= st; 
i
++


dt.Rows.Add(datarow); 


sr.Close(); 
//执行插入数据库动作 
int j = 0
foreach (DataRow dr in dt.Rows) 

SettlementCmbModel _model 
= SettlementCmbDal.GetModel(dr); 
//处理交易时间导入时出现在问题 
string s = _model.TerminalNo; 
int year = int.Parse(s.Substring(04)); 
int month = int.Parse(s.Substring(42)); 
int day = int.Parse(s.Substring(62)); 
string st = _model.TradeTime.ToString(); 
string[] str = st.Split(' '); 
string[] stri = str[1].Split(':'); 
int hour = int.Parse(stri[0]); 
int minute = int.Parse(stri[1]); 
int second = int.Parse(stri[2]); 
DateTime de 
= new DateTime(year, month, day, hour, minute, second); 
_model.TradeTime 
= de; 
_model.TerminalNo 
= "NET"
//订单号头加一个0 
_model.OrderNo = "0" + _model.OrderNo; 
if (SqlHelper.GetRecordCount("CRM_Settlement_CMB"" OrderNo like '" + _model.OrderNo + "'"==0

+= SettlementCmbDal.Add(_model); 


this.Literal1.Text = "成功更新" + j + ""
//StringBuilder sb = new StringBuilder(); 
//sb.Append("<table>"); 
//foreach (DataRow dr in dt.Rows) 
//
// sb.Append("<tr>"); 
// foreach (DataColumn dc in dt.Columns) 
// { 
// sb.Append("<td>" + dr[dc.ColumnName].ToString() + "</td>"); 
// } 
// sb.Append("</tr>"); 
//
//sb.Append("</table>"); 
//this.Literal1.Text = sb.ToString(); 




详细出处参考:http:
//www.jb51.net/article/23198.htm

 

   思路是读取txt,然后构造DataTable,然后由反射方式取得model,再插入

posted @ 2010-05-10 10:15  三颗屎  阅读(508)  评论(0编辑  收藏  举报