创建DLL来访问数据库c#

时间:2012-03-16 09:22:21

标签: c# wpf visual-studio-2010 dll

当应用程序启动时,使用Dll访问数据库是否明智。

这是我必须在我的应用中的每个页面调用的代码

  SqlConnection myConnection = new SqlConnection();
    myConnection.ConnectionString = "Data Source=CRYSTAL5\\INSTANCE1;Initial Catalog=Pharmacy;Integrated Security=True";
    myConnection.Open(); 

和我写的dll代码

public  class DBConnect
    {
        public DBConnect()
        {
            Initialize();
        }
        private SqlConnection connection;
        //Constructor


    //Initialize values
    private void Initialize()
    {
        string connectionString;
        connectionString = "Data Source=CRYSTAL5\\INSTANCE1;Initial Catalog=Pharmacy;Integrated Security=True";

        connection = new SqlConnection(connectionString);
    }

然后我在我的应用中添加了using DBCon;,并尝试运行此代码

DBConnect myConnection = new DBConnect();
        SqlCommand myCommand = new SqlCommand("select doc_fname,doc_lname,gender,department,education ,NMC_no  from ph.doctor_info where unit_id =0", myConnection);

它不起作用。

抱歉这个糟糕的描述

'System.Data.SqlClient.SqlCommand.SqlCommand(string,System.Data.SqlClient.SqlConnection)'的最佳重载方法匹配有一些无效的参数
    是我得到的错误

如果没有堆栈溢出,我该怎么做。

2 个答案:

答案 0 :(得分:2)

DBConnect似乎没有公开SqlConnection对象。因此,您将DBConnect对象传递给SqlCommand构造函数而不是SqlConnection对象,因此会出错。

答案 1 :(得分:1)

您正在将类型为“DbConnect”的对象传递给SqlCommand而不是SqlConnection对象。您的SQL连接对象保存在此类的connection变量中。

您需要将此字段设为公共字段,或者创建一个返回数据连接的函数。

如果公开连接,您将执行以下操作:

SqlCommand myCommand = new SqlCommand("select doc_fname,doc_lname,gender,department,education ,NMC_no  from ph.doctor_info where unit_id =0", myConnection.connection);

编辑:同样在Initialise中,您已创建了SqlConnection对象,但未调用Open()。在尝试使用连接之前,您需要执行此操作。在调用SqlCommand之前,将connection.Open()添加到initialise()或调用myConnection.connection.Open()