2014-09-26 2 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

+1

Я бы предложил исследовать ключевое слово 'using' и не воссоздавать поток на каждой итерации цикла. – Magus

+0

проверить мой код! :) – mybirthname

ответ

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

+0

@ user3888775 Что вы подразумеваете под заголовком столбца, я не понимаю вас – mybirthname

+0

Если файл сохраняется в формате csv, он получает заголовки столбцов таблицы – user3888775

Смежные вопросы