关于C#读取文件.....并插入数据库操作方法
public static DataSet TextFileLoader(string FilePath, string TableName, string[] FieldsInArray)
{
DataSet ds = new DataSet();//创建一个数据集对象
DataTable dt = new DataTable(TableName); //创建一个数据表
FileStream fs = File.Open(FilePath, FileMode.Open, FileAccess.Read); //文件流说明方式
//Encoding targetEncoding = GetEncoding(fs, "gb2312");
StreamReader sr = new StreamReader(fs,Encoding.Default);//读入
for (int i = 0; i < FieldsInArray.Length; i++) //数据库字段
{
dt.Columns.Add(new DataColumn(FieldsInArray[i], typeof(string)));//添加列
}
string strRead; //声明一个字符串
bool flag = true; //声明一个标识
while (flag)
{
strRead = sr.ReadLine();
if (!string.IsNullOrEmpty(strRead))
{
string[] aryVale = strRead.Split ('\t');
for (int i = 0; i < aryVale.Length; i++)
{
if (aryVale[i].Contains("CZ88.NET"))
{
aryVale[i] = aryVale[i].Replace("CZ88.NET", "");//替换
}
}
DataRow dr = dt.NewRow(); //得到数据行
DataColumn dm = new DataColumn();
//dt1.Columns.Add("名称");
//dt1.Columns.Add("价格");
//dt1.Columns.Add("数量");
for (int k = 0; k < aryVale.Length; k++)
{
dr[FieldsInArray[k]] = aryVale[k];
}
dt.Rows.Add(dr);
}
else
{
flag = false;
}
}
ds.Tables.Add(dt);
return ds;
}
public void Bind() {
string[] FieldsInArray = { "CountStartip", "CountEndip", "CountCountry" };//数据库字段
DataSet ds = new DataSet();
//方法调用
ds = TextFileLoader(@"E:\WebSite1\2.text ", "Count_IplocalTable", FieldsInArray);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
public void EnQeruy(DataSet ds)
{
using (SqlConnection con = new SqlConnection("sever=.;database=ip;uid=sa;pwd=sa;"))
{
SqlTransaction trans = con.BeginTransaction();//创建事物;
try
{
SqlCommand cmd = new SqlCommand();
cmd.ExecuteNonQuery();
trans.Commit();
for (int i = 0; i < ds.Tables[0].Rows; i++)
{
DataRow dr = ds.Tables[0].Rows[i];
string sqlstr = "insert into insert into Count_Iplocal([CountStartip],[CountEndip],[CountCountry])values('" + dr[0] + "'," + dr[1] + "," + dr[2] + ")";
}
}
catch
{
trans.Rollback();
}
}
}