2013-12-22 24 views
1

我正在製作一個項目,您可以看到列表框中的電影列表,並且有一個使用listbox.value查看電影描述的按鈕。從數據表C#中檢索一個字段,不工作

以下是我從數據庫中檢索描述的函數。 但我發現了以下錯誤:

Error 1 An object reference is required for the non-static field, method, or property 'Entertainment.FilmsDetails.filmId' H:\Visual Studio 2008\Projects\Entertainment\Entertainment\FilmsDetails.cs 43 39 Entertainment

public static string DetailMovie(int movieId) 
    { 
     string command; 
     command = "SELECT description" + 
      "FROM MovieDescription" + 
      " WHERE movieId= " + movieId; 
     OleDbDataAdapter adapter = new OleDbDataAdapter(command, connectionString); 
     DataTable datatable = new DataTable(); 
     adapter.Fill(datatable); 

     object o = datatable.Rows[0]["description"]; 
    } 
+0

上面的代碼沒有問題,你在哪裏訪問feild''Entertainment.FilmsDetails.filmId'?請分享該代碼。 –

+0

發佈或指定哪一行是發生錯誤的行。 – GolfWolf

+0

make'filmId' field static – Damith

回答

3

要傳遞到你的數據庫的SQL命令如下所示:

SELECT descriptionFROM MovieDescription WHERE movieID= 1 

確保描述之間添加一個空格,從

從那開始。

UPDATE

我最好的,沒有看到更多的代碼的猜測是您試圖訪問屬性或成員變量,是不是你的靜態方法中的靜態。你在方法本身中沒有創建的唯一變量是connectionString,如果它未被標記爲靜態,則會拋出此編譯器錯誤。

// connectionString is possibly not static 
OleDbDataAdapter adapter = new OleDbDataAdapter(command, connectionString); 

你的函數需要是靜態的,還是你可以使connectionString靜態?

更新2

您還需要返回一個值,你的功能。

+0

正確但是這不會導致編譯錯誤 –

+0

您是對的,我沒有看到整個錯誤信息 – ohiodoug

+0

@ohiodoug so如果我將其更改爲'public void DetailMovie(int MovieId)'。 並在最後添加'return'。然後我可以使用DetailMovie使它在消息框中變爲appamator? – user3127227

相關問題