2013-06-13 93 views
2

我是一個真正的noob在.NET中,我試圖鏈接一個簡單的命令行應用程序(在C#中)與SQL服務器數據庫。我現在可以將程序連接到數據庫,但不能恢復其中的數據。這裏是我的代碼:.NET和sql server數據庫鏈接

using System; 
using System.Data; 
using System.Data.SqlClient; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main() 
     { 
      string connectionString = GetConnectionString(); 
      string queryString = "SELECT USER_ID FROM dbo.ISALLOCATEDTO;"; 
      using (SqlConnection connection = new SqlConnection(connectionString)) 
      { 
       SqlCommand command = connection.CreateCommand(); 
       command.CommandText = queryString; 
       try 
       { 
        connection.Open(); 
        SqlDataReader reader = command.ExecuteReader(); 
        int i = 0; 
        while (reader.Read()) 
        { 
         i++; 
         Console.WriteLine("Field "+i); 
         Console.WriteLine("\t{0}",reader[0]); 
        } 
        reader.Close(); 
       } 
       catch (Exception ex) 
       { 
        Console.WriteLine(ex.Message); 
       } 
      } 
      //Console.WriteLine("Hello world"); 
      string x = Console.ReadLine(); 
     } 

     static private string GetConnectionString() 
     { 
      return "Data Source=FR401388\\SQLEXPRESS;Initial Catalog=Test;"; 
       + "Integrated Security=SSPI"; 
     } 
    } 
} 

但是,當我運行它,即使我的表是不是空的(我在SQL Server的工作室看到了),我無法使用讀取恢復數據( ) 方法。 到目前爲止我所做的:嘗試用假的名稱更改數據表的名稱:找不到數據表(因此,sql server數據庫和programm之間的鏈接似乎是有效的)。

我正在使用Windows身份驗證在SQL Server中,不知道是否它正在改變任何東西......(再一次:我是非常新的所有這一切)。

謝謝!

+3

如果您的表中確實有數據,此代碼應該可以工作。可能的原因是:您正在查看不同的數據庫。如果你在VS中使用Server Explorer中的服務器資源管理器,其連接字符串與代碼 – Steve

+0

中使用的連接字符串不同,那麼這是很常見的事情,是的,我改變了整個數據庫,現在它正在工作。謝謝 ! – Derbie

+0

我將更改此評論作爲答案,然後 – Steve

回答

4

你的代碼應該工作。
可能的原因是:您正在查看不同的數據庫。
如果您在VS中使用Server Explorer中的連接字符串與代碼中使用的連接字符串不同,這很常見。

+0

如果您有多個數據源,請檢查數據源是否正確。 (我有同樣的問題,我的數據源不正確) – xameeramir