2017-06-19 1 views
1

Der Versuch, den gesamten Inhalt einer Spalte aus einer MSSQL-Datenbank in eine Anordnung zur Ausgabe und zur Zeit bin ich immer diese als Ausgang:Ausgabe Inhalt der Spalte von MSSQL in C#

ConsoleApplication3.Program+ClassName 
ConsoleApplication3.Program+ClassName 

wenn ich hinzufügen eine zusätzliche Zeile zu der Spalte, dann wird es drei gleiche Ausgabe sein. Der Code, der das alles behandelt, ist unten.

public class ClassName 
    { 
     public string Col1 { get; set; } 
    } 

    static void Main(string[] args) 
    { 
     try 
     { 
      SqlConnection con = new SqlConnection("Data Source=;Network Library=DBMSSOCN; Initial Catalog = Backups; User ID = BackupsU; Password = ; "); 
      ClassName[] allRecords = null; 
      string sql = @"SELECT company_Name FROM Company"; 
      using (var command = new SqlCommand(sql, con)) 
      { 
       con.Open(); 
       using (var reader = command.ExecuteReader()) 
       { 
        var list = new List<ClassName>(); 
        while (reader.Read()) 
         list.Add(new ClassName { Col1 = reader.GetString(0) }); 
        allRecords = list.ToArray(); 

       } 

       foreach (var item in allRecords) 
       { 
        Console.WriteLine(item.ToString()); 
       } 

       Console.ReadKey(); 
       Console.WriteLine(); 
      } 

Antwort

3

Sie benötigen die Col1 Eigenschaft auf jeder Instanz Ihrer ClassName Klasse

foreach (var item in allRecords) 
    { 
    Console.WriteLine(item.Col1); 
    } 

Ohne das verweisen, die Sie Object.ToString() nur anrufen, die wenn sie nicht ersetzt, wird den vollständigen Namen Ihrer Klasse nur zurück.

+0

Arbeitete perfekt, danke! – xjacksssss

1

Sie müssen entweder ClassName.ToString() überschreiben, um ClassName.Col1 zurückzugeben, oder einfach item.Col1 in Ihrer Console.Writeline-Anweisung verwenden.

Da .ToString nicht überschrieben wird, wird auf Object.ToString() zurückgegriffen, wodurch der Klassenname ausgegeben wird.

Verwandte Themen