我是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
这是我遇到的内容的截图
这是文件的屏幕截图
这是我的班级代码
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 :(得分:5)
这里有很多问题:
using
指令。你无法做到这一点(无论如何,在C#6之前) - 你要么为一个类指定一个别名(这里你不想要),或者只是指定一个命名空间来导入所有的该命名空间中的类型。 (这样你就可以用简单的名字来引用它们。)dbConnetion
,但您已using dbConnection;
POS
命名空间中,但您尝试在不指定命名空间的情况下使用它从根本上说,当你试图从同一命名空间中的代码中使用时,你根本不需要using
指令 。它确实需要在一个项目中 - 或者是你尝试使用它的一个项目,或者是一个引用的项目。
您还应该阅读.NET naming conventions - 目前没有您的名字跟随他们。
此外,保持连接一段时间是个坏主意 - 你应该打开它,使用它,关闭它。使用using
语句确保在结尾处关闭它,即使抛出异常也是如此。
答案 1 :(得分:0)
您的班级名称和使用语句的班级名称不兼容
dbConnetion
dbConnection
如果你在相同的命名空间 ,则不需要通过使用
导入它答案 2 :(得分:0)
您将using
与命名空间一起使用,而不是类。如果消费类不在同一名称空间中,您可以交换:
using dbConnection;
的
using POS;
但在你的情况下,只需完全删除该行,而是将类文件移动到项目的一部分,而不是仅仅在解决方案的文件夹中