如题 ...vs2003 + sql2000 ...

解决方案 »

  1.   

    /// <summary>
      /// dataset to txt
      /// </summary>
      /// <param name="ds"></param>
      public void ExportToTxt(DataSet ds)
      {   if(ds.Tables.Count!=0)
       {
        string tempFileName = null;
        tempFileName = GetTempFileName();
        FileInfo file = new FileInfo(TXTPATH+tempFileName+TXTPOSTFIX);
        StreamWriter textFile = null;
        try
        {
         textFile = file.CreateText();
        }
        catch
        {
         System.Windows.Forms.MessageBox.Show("error "+TXTPATH+tempFileName+TXTPOSTFIX);
         return;
        }     for(int totaltable = 0;totaltable<ds.Tables.Count;totaltable++)
        {
         int row = ds.Tables[totaltable].Rows.Count;     int column = ds.Tables[totaltable].Columns.Count;
         int totalLength = 0;
         int titleLength = 0;
         int[] columnLength = new int[column];
         for(int i = 0;i<column;i++)
         {
          columnLength[i] = ds.Tables[totaltable].Columns[i].ColumnName.ToString().Length;
         }
         for(int i = 0;i<row;i++)
         {
          for(int j = 0;j<column;j++)
          {
           if(ds.Tables[totaltable].Rows[i][j].ToString().Length>columnLength[j])
           {
            columnLength[j]=ds.Tables[totaltable].Rows[i][j].ToString().Length;
           }
          }
         }
         for(int i = 0;i<column;i++)
         {
          totalLength = totalLength+columnLength[i]+DATADISTANCE;
         }
         totalLength = totalLength+2*TABDISTANCE-DATADISTANCE;
         titleLength = ds.Tables[totaltable].TableName.ToString().Length+"表的数据下".Length*2;     for(int i = 0;i<(int)((totalLength-titleLength)/2);i++)
         {
          textFile.Write(' ');
         }
         textFile.Write(ds.Tables[totaltable].TableName+"表的数据下");
         textFile.WriteLine();
         for(int i = 0;i<totalLength;i++)
         {
          textFile.Write('*');
         }
         textFile.WriteLine();
         textFile.Write("\t");     for(int i = 0;i<column;i++)
         {
          textFile.Write(ds.Tables[totaltable].Columns[i].ColumnName.ToString());
          for(int k = 0;k<columnLength[i]-ds.Tables[totaltable].Columns[i].ColumnName.ToString().Length+DATADISTANCE;k++)
          {
           textFile.Write(' ');
          }
         }
         textFile.WriteLine();
         for(int i = 0;i<totalLength;i++)
         {
          textFile.Write('-');
         }
         textFile.WriteLine();
         textFile.Write("\t");
         for(int i = 0;i<row;i++)
         {
          for(int j = 0;j<column;j++)
          {
           textFile.Write(ds.Tables[totaltable].Rows[i][j].ToString());
           for(int k = 0;k<columnLength[j]-ds.Tables[totaltable].Rows[i][j].ToString().Length+DATADISTANCE;k++)
           {
            textFile.Write(' ');
           }
          }
          textFile.WriteLine();
          textFile.Write("\t");
         }
         textFile.WriteLine();
         for(int i = 0;i<totalLength;i++)
         {
          textFile.Write('-');
         }
         textFile.WriteLine();
         textFile.WriteLine();
         textFile.WriteLine();
        }    textFile.Close();
        System.Windows.Forms.MessageBox.Show("数据以保存到"+"   "+file.FullName);                 
       }
       else
       {
        System.Windows.Forms.MessageBox.Show("No Data");
       }
      }  public string GetTempFileName()
      {
       return DateTime.Now.ToString("yyyyMMddhhmmssfff");
      }
      

  2.   

    to: dlzhangln(才高七八斗,学富五六车,改行三四次,月入一两千!) 你创建的txt文件是固定地址的,如果是想自己选择路径的可以吗 ?
      

  3.   

    to: dlzhangln(才高七八斗,学富五六车,改行三四次,月入一两千!) 可以把调完后的代码发一下吗... 先谢谢了
      

  4.   

    结贴了 ...
    当我还是想知道呀 ...to: dlzhangln(才高七八斗,学富五六车,改行三四次,月入一两千!) 可以把调完后的代码发一下吗... 先谢谢了我是在客户端访问服务器,然后导出txt到本地 ...