2014-12-27 106 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; 

但在你的情况下,只是删除了共线,取而代之的是类文件移动到成为该项目的一部分,而不仅仅是解决方案中的文件夹

相关问题