【发布时间】:2019-10-06 23:43:05
【问题描述】:
我为 MS Access 数据库连接创建了一个类。它适用于我的 Winforms 应用程序中的大多数表单。但是,我有一个表单,用户可以在其中添加、编辑或删除数据库中的信息。我已经使用字符串构造了该部分,但是当我删除之前在那里的长数据库连接字符串并将其替换为我创建的类时,它会引发异常。
我尝试通过删除字符串来更改代码,但我想使用字符串方法。
这是删除按钮单击事件的代码
string con = (@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =C:\Users\folder\Desktop\ApplicationFolder\AppName\bin\Debug\DataBase\DatabaseName.accdb");
string Query = "delete from Employees2 where EmployeeName = '" +
this.txtAdminFEmployee.Text + "' ; ";
OleDbConnection ConnectionString = new OleDbConnection(con);
OleDbCommand command = new OleDbCommand(Query, ConnectionString);
OleDbDataReader reader;
try
{
ConnectionString.Open();
reader = command.ExecuteReader();
DialogResult result = MessageBox.Show("Employee Deleted Successfully",
"Information",
MessageBoxButtons.OK, MessageBoxIcon.Information);
while (reader.Read())
{
}
}
catch (Exception ex)
{
MessageBox.Show("Error " + ex);
ConnectionString.Close();
这是我创建的数据库类
using System.Data.OleDb;
namespace AppName
{
class OledbConnect
{
public OleDbConnection con;
public void Connection()
{
con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DatabaseName.accdb");
}
}
}
我需要知道如何在该字符串中使用数据库类。我尝试了不同的方法,但没有任何效果。我还是 c# 的新手,谷歌并没有真正返回我可以使用的任何东西。谢谢
【问题讨论】:
-
你真的是在重新发明轮子。有很多更好/开发良好的库可以与 JET 数据库通信。例如:devart.com/dotconnect/universal/docs/EnterpriseLib.html
-
在相同的代码方法中看到sql-code和MessageBox代码............请阅读层分离。 docs.microsoft.com/en-us/dotnet/standard/…blogs.msdn.microsoft.com/jmeier/2008/09/06/…
-
还有很多内置于您忽略的 NET 提供程序的功能。 DataAdapter 将“记住”您的连接并根据需要打开/关闭它。将字符串粘合在一起以生成 SQL 是危险的(并且已经过时多年)。始终使用 SQL 参数。
标签: c# winforms class connection-string