类型或命名空间名称' dbConnection'找不到(你错过了使用指令或程序集引用吗?)

时间:2014-12-27 20:39:06

标签: c# mysql visual-studio-2010 class

我是C#和Visual Studio的新手。我正在尝试编写一个小应用程序,我可以在其中插入/更新/删除和从MySQL数据库中选择记录。

我确实有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);
            }
        }
    }
}

如何更正此问题?以及如何正确地包括课程?

3 个答案:

答案 0 :(得分:5)

这里有很多问题:

  • 您正在尝试为使用using指令。你无法做到这一点(无论如何,在C#6之前) - 你要么为一个类指定一个别名(这里你不想要),或者只是指定一个命名空间来导入所有的该命名空间中的类型。 (这样你就可以用简单的名字来引用它们。)
  • 由于某种原因,您的课程被称为dbConnetion,但您已using dbConnection;
  • 您的类位于POS命名空间中,但您尝试在不指定命名空间的情况下使用它
  • 看起来你的班级不在项目中 - 这是一个解决方案项目。可能根本没有编译。类应始终在项目中。

从根本上说,当你试图从同一命名空间中的代码中使用时,你根本不需要using指令 。它确实需要在一个项目中 - 或者是你尝试使用它的一个项目,或者是一个引用的项目。

您还应该阅读.NET naming conventions - 目前没有您的名字跟随他们。

此外,保持连接一段时间是个坏主意 - 你应该打开它,使用它,关闭它。使用using语句确保在结尾处关闭它,即使抛出异常也是如此。

答案 1 :(得分:0)

您的班级名称和使用语句的班级名称不兼容

dbConnetion
dbConnection

如果你在相同的命名空间 ,则不需要通过使用

导入它

答案 2 :(得分:0)

您将using与命名空间一起使用,而不是类。如果消费类不在同一名称空间中,您可以交换:

using dbConnection;

using POS;

但在你的情况下,只需完全删除该行,而是将类文件移动到项目的一部分,而不是仅仅在解决方案的文件夹中