2014-12-27 225 views
0

我是C#和Visual Studio的新手。我想寫一個小的應用程序,我可以插入/更新/刪除和從MySQL數據庫中選擇記錄。無法找到類型或名稱空間名稱'dbConnection'(您是否缺少using指令或程序集引用?)

我對PHP和其他語言有編程經驗,但這是我第一次使用Windows應用程序。

我寫了一個類來處理MySQL的打開/關閉連接,並處理查詢。

類名是dbConnetion,它位於Clases\dbConnetion.cs

上,我想用這個類我把上面

using dbConnetion; 

的形式,但由於某種原因,我不斷收到一個錯誤在路上我試圖包含類

Error 1 The type or namespace name 'dbConnection' could not be found (are you missing a using directive or an assembly reference?) C:\Users\User\C# Projects\POS\POS\newDepartment.cs 

這裏是什麼,我運行到

截圖

enter image description here

這是文件

enter image description here

這裏是我的類代碼

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using MySql.Data.MySqlClient; 
using System.Windows.Forms; 


namespace POS 
{ 
    public class dbConnetion 
    { 
     //private OdbcConnection conn; 
     private readonly string mServer; 
     private readonly string mDatabase; 
     private readonly string mUid; 
     private readonly string mPassword; 
     private readonly string mPort; 
     private readonly string conn_string; 
     public dbConnetion() 
     { 
      mServer = "localhost"; 
      mDatabase = "pos"; 
      mUid = "root"; 
      mPassword = ""; 
      mPort = "3306"; 

      conn_string = String.Format("server={0};user={1};database={2};port={3}password={4};", mServer, mUid, mDatabase, mPort, mPassword); 



     } 

     //Start connection to database 
     private bool startConnection(MySqlConnection mConnection) 
     { 

      try 
      { 
       mConnection.Open(); 
       return true; 
      } 
      catch (MySqlException ex) 
      { 
       MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK); 
       return false; 
      } 

     } 


     //Close connection 
     private bool closeConnection(MySqlConnection mConnection) 
     { 
      try 
      { 
       mConnection.Close(); 
       return true; 
      } 
      catch (MySqlException ex) 
      { 
       MessageBox.Show(ex.Message); 
       return false; 
      } 
     } 

     public MySqlDataReader getDataSet(string query) 
     { 
      MySqlConnection conn = new MySqlConnection(conn_string); 

      if (startConnection(conn) == true) 
      { 
       MySqlCommand cmd = new MySqlCommand(query, conn); 
       MySqlDataReader dataset = cmd.ExecuteReader(); 
       closeConnection(conn); 

      } 
      return dataset; 
     } 


     public void processQuery(string strSQL, List<MySqlParameter> pars) 
     { 
      MySqlConnection conn = new MySqlConnection(conn_string); 


      if (startConnection(conn) == true) 
      { 
       MySqlCommand cmd = new MySqlCommand(strSQL, conn); 

       foreach (MySqlParameter param in pars) 
       { 
        cmd.Parameters.Add(param); 
       } 

       cmd.ExecuteNonQuery(); 
       closeConnection(conn); 
      } 
     } 
    } 
} 

如何解決此問題的一個屏幕截圖?以及如何正確包含課程?

+0

您不需要使用。類和表單在同一個命名空間中。 – Steve 2014-12-27 20:42:51

回答

5

這裏有多種問題:

  • 你試圖使用using指令的類。你不能這麼做(在C#6之前,無論如何) - 你要爲一個類指定一個別名(你不想在這裏),或者你只需​​要指定一個命名空間以便導入該名字空間中的所有類型。 (這樣就可以通過他們的簡單名稱指代他們。)
  • 你的類被稱爲dbConnetion出於某種原因,但你using dbConnection;
  • 你的類是POS命名空間,但是你想使用它沒有指定命名空間
  • 它看起來像你的類不在項目中 - 這是一個解決方案項目。它可能根本沒有被編譯。課程應始終在項目中。

從根本上說,因爲你想在同一個命名空間中使用它的代碼,你並不需要在所有一個using指令,它。它確實需要在一個項目中 - 或者是你試圖使用它的那個項目,或者是一個被引用的項目。

你也應該閱讀.NET naming conventions - 目前你的名字都沒有。

此外,在任何時間段內保持連接都是一個壞主意 - 您應該打開它,使用它,關閉它。使用using語句來確保在最後關閉它,即使拋出異常也是如此。

+0

謝謝你做了很多:) – Jaylen 2014-12-27 21:43:09

+0

關於你最近關於打開/關閉連接的意見...你能告訴我我在做什麼我的代碼錯了嗎?我使用startConnection開始連接,然後運行命令(即選擇....),然後使用closeConnection關閉連接。求助幫助我理解這個問題,所以我可以改正它 – Jaylen 2014-12-27 21:48:09

+0

@Mike:你正在使用一個實例變量。所以如果你有兩個不同的線程使用同一個類的實例,他們會相互踐踏。不需要保持實例 - 只要每次需要使用數據庫時創建一個全新的實例。 – 2014-12-27 21:49:32

0

你的類名和類,你在using語句的名稱是不兼容的

dbConnetion 
dbConnection 

此外,如果您是在相同的命名空間它不需要使用與將其導入

0

您使用using命名空間,而不是類。如果消費類是尚未在相同的命名空間,你會掉:

using dbConnection; 

using POS; 

但在你的情況下,只是刪除了共線,取而代之的是類文件移動到成爲該項目的一部分,而不僅僅是解決方案中的文件夾

相關問題