📄 cefile.cs
字号:
using System;
using System.IO;
using System.Data;
using System.Data.SqlServerCe;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
namespace Wholesale
{
/// <summary>
/// CEFile 的摘要说明。
/// </summary>
public class CEFile
{
public CEFile()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 将工厂信息添加到TAF表
/// </summary>
/// <param name="FileName"></param>
/// <returns></returns>
public bool AddToTAF(string FileName)
{
CEData data=new CEData();
SqlCeConnection conn=null;
conn=data.conn;
SqlCeTransaction myTrans;
myTrans=conn.BeginTransaction();
SqlCeCommand mycmd=conn.CreateCommand();
mycmd.Connection=conn;
mycmd.Transaction=myTrans;
StreamReader sr=new StreamReader(FileName,Encoding.GetEncoding("GB2312"));
char[] sep=new char[]{'\n'};
//存放表名
string sTbName="";
try
{
foreach(string s1 in sr.ReadToEnd().ToString().Split(sep))
{
//存放格式化的记录的数据
ArrayList aRdName=new ArrayList();
//清除记录中的数据
aRdName.Clear();
//读取表名
if(s1.Substring(0,1)=="#")
{
sTbName=s1.Substring(1);
}
if(s1.Substring(0,1)=="~")
{
char[] sep2=new char[]{'|'};
//读取记录中的数据
foreach(string s2 in s1.Substring(1).Split(sep2))
{
aRdName.Add(s2);
}
System.Collections.IEnumerator Et = aRdName.GetEnumerator();
string sRecord1="";
string sRecord2="";
string sRecord3="";
//string sRecord4="";
//string sRecord5="";
//string sRecord6="";
string sql="";
if(string.Compare(sTbName.Substring(0,3),"TAP",true)==0)
{
Et.Reset();
Et.MoveNext();
//第一个数据
sRecord1=Et.Current.ToString();
//???
SubStr s=new SubStr();
//获取产品ID
string CPID=s.SubPack(sRecord1);
sRecord1=sRecord1.Substring(33,17);
Et.MoveNext();
//第二个(数值型)
//sRecord2=Et.Current.ToString();
Et.MoveNext();
//第三个
//sRecord3=Et.Current.ToString();
Et.MoveNext();
//第四个
//sRecord4=Et.Current.ToString();
//sRecord4=sRecord4.Substring(0,sRecord4.Length-1);
Et.MoveNext();
//第五个
sRecord2=Et.Current.ToString();
if(sRecord2.CompareTo("0")==0)
continue;
//sRecord2=sRecord2.Substring(0,sRecord2.Length-1);
//Et.MoveNext();
//sRecord4=Et.Current.ToString();
//sRecord4=sRecord4.Substring(0,sRecord4.Length-1);
SqlCeDataReader myReader=null;
string sNumA="0";
sql="select TAEAF from TAE where TAEAA='"+sRecord1+"' and TAEAD='"+CPID+"'";
myReader=data.ExeSQL(sql);
while(myReader.Read())
{
sNumA=myReader.GetValue(0).ToString();
}
int iTotal=Int32.Parse(sRecord2)*Int32.Parse(sNumA);
sRecord2=iTotal.ToString();
sql="select TAEAD from TAE where TAEAB=TAEAC and TAEAA='"+sRecord1+"' and TAEAF=1";
myReader=data.ExeSQL(sql);
while(myReader.Read())
{
sRecord3=myReader.GetString(0);
}
//执行插入记录
//SqlCeDataReader myReader=null;
sql="select * from TAF where TAFAA='"+sRecord1+"' and TAFAC='"+sRecord3+"'";
myReader=data.ExeSQL(sql);
if(myReader.Read())
{
mycmd.CommandText="update TAF set TAFAB=TAFAB+"+sRecord2+" where TAFAA='"+sRecord1+"' and TAFAC='"+sRecord3+"'";
mycmd.ExecuteNonQuery();
}
else
{
mycmd.CommandText="Insert into TAF(TAFAA,TAFAB,TAFAC) Values('"+sRecord1+"',"+sRecord2+",'"+sRecord3+"')";
mycmd.ExecuteNonQuery();
}
myReader.Close();
}
}
}
myTrans.Commit();
}
catch(Exception)
{
myTrans.Rollback();
sr.Close();
conn.Dispose();
return false;
}
sr.Close();
conn.Dispose();
return true;
}
/// <summary>
/// 将有表名和记录的数据插入到指定的文件位置里
/// </summary>
/// <param name="TableName">表名</param>
/// <param name="FieldName">字段名</param>
/// <param name="DestName">目标文件</param>
public static void AddToFileA(string TableName,string FieldName,string DestName)
{
StreamReader sr=new StreamReader(DestName,Encoding.GetEncoding("GB2312"));
string sTemp=sr.ReadToEnd().ToString();
sr.Close();
FileStream fs=new FileStream(DestName,FileMode.OpenOrCreate,FileAccess.Write);
//返回找到的第一个字符的位置
int Pos=sTemp.IndexOf(TableName);
Pos=Pos+TableName.Length;
byte[] buf=Encoding.GetEncoding("GB2312").GetBytes(sTemp.Insert(Pos,"\r\n"+FieldName));
fs.Write(buf,0,buf.Length);
fs.Close();
}
/// <summary>
/// 将指定的文件数据追加到指定文件里
/// </summary>
/// <param name="SourceName">源文件</param>
/// <param name="DestName">目标文件</param>
public void AddToFile(string SourceName,string DestName)
{
FileStream fs=new FileStream(DestName,FileMode.Append,FileAccess.Write);
StreamReader sr=new StreamReader(SourceName,Encoding.GetEncoding("GB2312"));
byte[] buf=Encoding.GetEncoding("GB2312").GetBytes(sr.ReadToEnd().ToString());
fs.Write(buf,0,buf.Length);
sr.Close();
fs.Close();
}
/// <summary>
/// 将指定的文件插入到指定的位置的文件里
/// </summary>
/// <param name="SourceFile">源文件</param>
/// <param name="DestFile">目标文件</param>
public void AddInFile(string SourceFile,string DestFile)
{
StreamReader sr=new StreamReader(SourceFile,Encoding.GetEncoding("GB2312"));
string TableName="";
string FieldName="";
foreach(string s in sr.ReadToEnd().ToString().Split('\n'))
{
if(s.Substring(0,1)=="#")
{
TableName=s.Substring(0);
}
if(s.Substring(0,1)=="~")
{
FieldName=s.Substring(0);
AddToFileA(TableName,FieldName,DestFile);
}
}
sr.Close();
}
/// <summary>
/// 前端补零
/// </summary>
/// <param name="sName">需要补零的字符串</param>
/// <param name="i">需要补充的长度</param>
/// <returns></returns>
static string BC(string sName,int i)
{
while(sName.Length<i)
{
sName="0"+sName;
}
return sName;
}
//将数据库文件导出成文本文件
public string DB2TXT()
{
string FileName="";
string Field1="";
string Field2="";
string Field3="";
string Field4="";
string Field5="";
string Field6="";
string Field7="";
string Field8="";
string sTemp="";
Random rd=new Random();
//FileName=string.Concat(DateTime.Now.ToString("yyyyMMddHHmmss"),BC(rd.Next(1,999).ToString(),3),".txt");
//FileName=string.Concat("\\Dout.txt");
do
{
FileName=string.Concat(DateTime.Now.ToString("yyyyMMddHHmmss"),BC(rd.Next(1,999).ToString(),3),".txt");
}while(File.Exists(FileName));
CEData data=new CEData();
SqlCeConnection conn=null;
conn=data.conn;
SqlCeTransaction myTrans;
myTrans=conn.BeginTransaction();
SqlCeCommand mycmd=conn.CreateCommand();
mycmd.Connection=conn;
mycmd.Transaction=myTrans;
SqlCeDataReader myReader=null;
//建立文件
StreamWriter sw=File.CreateText(FileName);
try
{
//写入表名
sw.WriteLine("#T_AA");
int RowCount=0;
myReader=data.ExeSQL("select count(*) from TAA where TAAAG=0");
myReader.Read();
RowCount=Int32.Parse(myReader.GetValue(0).ToString());
if(RowCount>0)
{
myReader=data.ExeSQL("select * from TAA where TAAAG=0");
while(myReader.Read())
{
//T_AA_AA
if(myReader.IsDBNull(1))
Field1="";
else
Field1=myReader.GetString(1);
//T_AA_AB
if(myReader.IsDBNull(2))
Field2="";
else
Field2=myReader.GetString(2);
//T_AA_AC
if(myReader.IsDBNull(3))
Field3="";
else
Field3=myReader.GetString(3);
//T_AA_AD
Field4=myReader.GetValue(4).ToString();
//T_AA_AE
Field5=myReader.GetDateTime(5).ToString();
//T_AA_AF
if(myReader.IsDBNull(6))
Field6="";
else
Field6=myReader.GetString(6);
//T_AA_AH
if(myReader.IsDBNull(8))
Field7="";
else
Field7=myReader.GetString(8);
//T_AA_AI
if(myReader.IsDBNull(9))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -