2014-12-26 196 views
1

我試圖連接到本地數據庫(在Visual Studio 2013中創建的基於服務的數據庫)。Visual Studio C#和SQL Server:連接屬性尚未初始化

我用這個C#代碼:

string connectionstring = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=\"|DataDirectory|\\InvDB.mdf\";Integrated Security=True"; 

public int testpripojeni() 
{ 
    using(SqlConnection pripojeni = new SqlConnection(connectionstring)) 
    { 
     pripojeni.Open(); 

     SqlCommand prikaz = new SqlCommand(); 
     prikaz.CommandText = " SELECT COUNT (*) FROM HlavniTab"; 

     int pocet = (int)prikaz.ExecuteScalar(); 

     pripojeni.Close(); 
     return pocet; 
    } 
} 

這個功能應該連接到數據庫和表HlavniTab計算行。但我得到的路線錯誤

int pocet = (int)prikaz.ExecuteScalar(); 

它說

'System.InvalidOperationException' 類型的未處理的異常出現在system.data.dll

其他信息:的ExecuteScalar:Connection屬性有未被初始化。

我應該怎麼做才能解決這個問題?

+1

閱讀的SqlCommand的構造函數的文檔。您需要爲該構造函數提供連接('pripojeni'),以便SQLCommand知道連接。 –

回答

2

你的SqlCommand沒有被分配給一個連接

嘗試的SqlCommand

prikaz.Connection = pripojeni; 
+0

是的,謝謝,它的工作! – parman

+0

請點擊灰色檢查下面的投票標記爲答覆。謝謝。 – agentpx

0

連接屬性必須被填充。您可以使用構造函數設置連接屬性,也可以直接將該值設置爲連接屬性。

嘗試 -

using(SqlConnection pripojeni = new SqlConnection(connectionstring)) 
    { 

     pripojeni.Open(); 
     SqlCommand prikaz = new SqlCommand(pripojeni); 
     prikaz.CommandText = " SELECT COUNT (*) FROM HlavniTab"; 
     int pocet = (int)prikaz.ExecuteScalar(); 
     pripojeni.Close(); 
     return pocet; 

    } 

using(SqlConnection pripojeni = new SqlConnection(connectionstring)) 
    { 

     pripojeni.Open(); 
     SqlCommand prikaz = new SqlCommand(); 
     prikaz.Connection = pripojeni; 
     prikaz.CommandText = " SELECT COUNT (*) FROM HlavniTab"; 
     int pocet = (int)prikaz.ExecuteScalar(); 
     pripojeni.Close(); 
     return pocet; 

    } 
相關問題