当前位置:编程学习 > C#/ASP.NET >>

真心急求!C#程序代码,读取另一台电脑上的txt文件数据

用C#写一个程序,要读取局域网内另一台电脑上的txt文件(可共享)。
将文件内的数据读入到本机器的SQL表内。
txt文件内数据举例(共4列):
10 25 33 2013/10/20 21:55:36
9 24 32 2013/10/20 21:55:35
8 23 31 2013/10/20 21:55:34
7 22 30 2013/10/20 21:55:33
小弟非常着急,望大家给予帮助,吐血拿出100分高分了~~ C# 套接字 互联 SQL --------------------编程问答-------------------- 读取局域网电脑(共享访问)的txt文件,根据你的txt数据形式,可以使用StreamReader对象一行一行的读取。同时通过ado.net插入到数据库指定的表当中。
http://www.cnblogs.com/ManMonth/archive/2011/10/11/2206998.html --------------------编程问答-------------------- 用WNetAddConnection2 API建立共享连接
用File.ReadAllLines读取文件 --------------------编程问答-------------------- 这是我用过的代码,方法不一定最好,你参考一下:
  public class ConnDb
        {
            SqlConnection conn = null;
            //下面是构造函数连接数据库            
            public ConnDb()
            {
                if (conn == null)//判断连接是否为空
                {
                    conn = new SqlConnection();                    
                    conn.ConnectionString = "Data Source=192.168.1.1;Initial Catalog=data;uid=sa;pwd=sa;";

                }

                if (conn.State == ConnectionState.Closed)
                {
                    try
                    {
                        conn.Open();//打开数据库连接   
                    }
                    catch (Exception ee)
                    {
                        //Response.Write(ee.Message);
                        MessageBox.Show(ee.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }

                }
            }

            //下面这个方法是从数据库中查找数据的方法
            public DataSet query(string sql)
            {
                DataSet ds = new DataSet();//DataSet是表的集合            
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);                
                da.Fill(ds);//将数据填充到DataSet
                connClose();//关闭连接
                return ds;//返回结果
            }


            //下面的方法是对数据库进行更新
            public int add(string sql)
            {
                SqlCommand oc = new SqlCommand();
                int icount = 0;
                oc.CommandText = sql;
                oc.CommandType = System.Data.CommandType.Text;
                oc.Connection = conn;//设置命令的连接    
                if (conn.State != ConnectionState.Open)
                {
                    try
                    {
                        conn.Open();
                        icount = (int)oc.ExecuteNonQuery();
                    }
                    catch (Exception ee)
                    {
                        throw ee;
                    }
                    finally
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }

                return icount;
            }

            public int seldata(string sql)
            {

                SqlCommand sqlcmd = new SqlCommand();
                sqlcmd.CommandText = sql;
                sqlcmd.CommandType = System.Data.CommandType.Text;
                sqlcmd.Connection = conn;
                int icot = 0;

                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                SqlDataReader dr = sqlcmd.ExecuteReader();
                dr.Read();
                if (dr.HasRows)
                {
                    icot = 1;
                }
                else
                {
                    icot = 0;
                }
                conn.Close();
                conn.Dispose();
                return icot;
            }


            public void deldata(string sql)
            {
                SqlCommand sqlcmd = new SqlCommand();
                sqlcmd.CommandText = sql;
                sqlcmd.CommandType = System.Data.CommandType.Text;
                sqlcmd.Connection = conn;//设置命令的连接
                int icount = 0;
                if (conn.State != ConnectionState.Open)
                {
                    try
                    {
                        conn.Open();
                        icount = (int)sqlcmd.ExecuteNonQuery();
                    }
                    catch (Exception ee)
                    {
                        throw ee;
                    }
                    finally
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }

            }
            public void connClose()
            {
                if (conn.State == ConnectionState.Open)
                {
                    //判断数据库的连接状态,如果状态是打开的话就将它关闭
                    conn.Close();
                    conn.Dispose();
                }
            }

        }
        private int add_sql(string sql)
        {

            int x = new ConnDb().add(sql);//通过ConnDb()对象的update()方法执行sql语句并返回一个影响行数

            if (x > 0)
            {
               // toolStripStatusLabel1.Text = DateTime.Now + " " + "该时次文件入库成功!";
            }
            else
            {
                //toolStripStatusLabel1.Text = DateTime.Now + " " + "该时次文件入库失败!";
            }
            return x;
        }

        private void button4_Click(object sender, RoutedEventArgs e)
        {

            try
            {
                string datapath = @"\\192.168.1.2\data\data.txt";
                using (StreamReader sr = new StreamReader(datapath))
                {
                    String line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        string txt = line;
                        ConnDb cdb = new ConnDb();
                        string sql1 = string.Format("select * from 表");
                        int iReturn = cdb.seldata(sql1);
                        if (iReturn == 0) //数据库里没有数据就入到表里
                        {
                            string sql = string.Format("insert into  表(txt) values('{0}')", txt);
                            listBox2.Items.Insert(0, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 文件已入库!!");
                        }

                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }


        }
--------------------编程问答-------------------- 我是帮你想成一行一条记录了,如果整个内容就一条记录,就用File.ReadAllLines, --------------------编程问答-------------------- 重新写一个:四列四个字段,四行对吧。
你根据你的实际情况,再修改一下,很容易了
 public static void insert_data(string s1, string s2, string s3,string s4)
  {

      string strCon = "Data Source=192.168.1.2;Initial Catalog=test;User ID=sa;Pwd=sa"; //mdb 当然是同一个目录下了                
      SqlConnection myConn = new SqlConnection(strCon);
      string insert_sql = "insert into table_name column_name1,column_name2,column_name3,column_name4) values ('" + s1 + "'" + s2 + "'" + s3 + "'" + s4 + "')";
      SqlCommand cmd = new SqlCommand(insert_sql, myConn);
      try
      {
          myConn.Open();
          cmd.ExecuteNonQuery();
      }
      catch
      {

      }
      finally
      {
          myConn.Close();
      }

  }
  private void button11_Click(object sender, EventArgs e)
  {
      try
      {
          string datapath = @"\\192.168.1.2\data\data.txt";
          using (StreamReader sr = new StreamReader(datapath))
          {
              String line;
              while ((line = sr.ReadLine()) != null)
              {
                  string txt = line;
                  string[] s = txt.Split(' ');
                  insert_data(s[0], s[1], s[2], s[3] + " " + s[4]);
              }
          }
      }
      catch (Exception ex)
      {
          MessageBox.Show(ex.Message);
      }
  }
--------------------编程问答-------------------- 模拟账户跨服务器上传下载文件
http://www.yyzq.net/Product?ID=7
希望能给你一些启发 --------------------编程问答-------------------- 有多大问题?
1. 从局域网读取文件?
   共享方式或是http、ftp下载
2. 分析txt文件?
   按协定的分隔符进行分隔,组织sql,执行,可能需要一个事务
楼主哪不会?就一块一块做,再整合到一起 --------------------编程问答-------------------- 采用ftp技术进行局域网的下载 --------------------编程问答-------------------- 使用远程访问方式获取txt对象,然后用StreamReader一行一行的读取。 --------------------编程问答-------------------- 谢谢大家,我正在测试,分数稍后会给的~ --------------------编程问答-------------------- 都共享了就可以读取啊!

也可以用Socket读取!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,