2014-09-26 129 views
0

我想写一个sql查询到一个文件,但我只能在文本文件中写入一列查询。我如何添加更多列?C#将sql查询写入文件?

这是我的C#Windows表单代码:

SqlConnection con = new SqlConnection(@"Data Source=" + globalvariables.hosttxt + "," + globalvariables.porttxt + "\\SQLEXPRESS;Database=ha;Persist Security Info=false; UID='" + globalvariables.user + "' ; PWD='" + globalvariables.psw + "'"); 
SqlCommand command = con.CreateCommand(); 

command.CommandText = "Select * from bestillinger"; 
con.Open(); 
SqlDataReader queryReader = command.ExecuteReader(); 

while (queryReader.Read()) 
{ 
    StreamWriter file = new StreamWriter(@"C:\Users\Michael\Desktop\query.txt"); 
    file.WriteLine(queryReader["ordrenr"]); 

    file.Close(); 

} 

queryReader.Close(); 
con.Close(); 

它不会让我写:

file.WriteLine(queryReader["ordrenr"] + queryReader["user"]); 
+0

如果您收到异常请在您的问题中加入。 – juharr 2014-09-26 18:19:56

+1

我建议研究'使用'关键字,并且不要在循环的每次迭代中重新创建流。 – Magus 2014-09-26 18:24:08

+0

检查我的代码! :) – mybirthname 2014-09-26 18:54:31

回答

0

我找到了一种方法:

file.WriteLine("{0},{1}", queryReader["ordrenr"], queryReader["user"]); 
0
 static void Main(string[] args) 
     { 
      string connString = @"here connection string"; 
      SqlConnection con = new SqlConnection(connString); 
      SqlCommand command = con.CreateCommand(); 

      command.CommandText = "Select * from Object"; 
      con.Open(); 
      SqlDataReader queryReader = command.ExecuteReader(); 
      StreamWriter file = new StreamWriter(@"C:\Projects\EverydayProject\test.txt"); 

      bool addColumns = false; 
      string columnName1="Title"; 
      string columnName2 = "City"; 

      while (queryReader.Read()) 
      { 
       if(addColumns) 
       { 
        file.WriteLine(columnName1 + " " + columnName2); 
        addColumns = true; 
       } 
       else 
       { 
        file.WriteLine(queryReader["Title"].ToString() + " " + queryReader["City"].ToString()); 
       }      
      } 

      queryReader.Close(); 
      con.Close(); 
      file.Close(); 
     } 

这是你应该首先将对象转换为String()需要在最后关闭文件。不是第一次迭代!

+0

你可以给列添加标题吗? – user3888775 2014-09-26 19:32:43

+0

@ user3888775你是什么意思的标题的专栏,我不明白你 – mybirthname 2014-09-26 19:33:59

+0

如果文件被保存为CSV格式它获取表列标题 – user3888775 2014-09-26 19:41:36