我们可以从具有ClassLibrary项目的DLL文件返回DataTable吗?

时间:2012-05-04 09:22:45

标签: c# asp.net dll class-library

我想从ClassLibrary Project创建的DLL文件返回一个DataTable。那么是否可以从DLL文件返回一个DataTable,其中包含返回DataTable的代码?而且我想在asp.net网站上使用它。 Plz给出任何建议......! EG:

public DataTable getData()
    {
       DataTable dt=new DataTable("Test");
       SqlCommand cmd=new SqlCommand();
       SqlDataAdapter da=new SqlDataAdapter();
       using(SqlConnection con=new SqlConnection(ConfigurationManager.ConnectionStrings["EMP"].ConnectionString))
        {
            da.SelectCommand = con.CreateCommand();
            da.SelectCommand.CommandType = CommandType.Text;
            da.SelectCommand.CommandText = "Select *from EMP";
            da.SelectCommand.Connection = con;
            try
            {
                con.Open();
                da.Fill(dt);
                con.Close();
            }
            catch (Exception ec)
            {

            }
            finally
            {

                con.Close();
            }

        }
        return dt;
    }

3 个答案:

答案 0 :(得分:1)

是的,可以返回Datatable。你在做什么是正确的。确保提供连接字符串值

ConfigurationManager.ConnectionStrings["EMP"].ConnectionString

如何在dll中。

您可以提供getData参数

public DataTable getData(string constr)
{
   //// Your code

   using(SqlConnection con=new SqlConnection(constr))
   { 
   ///// Your code
}

答案 1 :(得分:1)

当然可以。您必须在ClassLibrary项目中创建一个类,然后从ASP.NET项目中引用项目或DLL,创建该类的实例并调用该方法。

ClassLibrary项目中的课程可能是这样的:

namespace Data
{
    public class MyDataProvider {
        public DataTable GetData()
        {
            // Your method code here
        }
    }
}

您应该使用ASP.NET项目中的代码:

// Create provider
Data.MyDataProvider provider = new Data.MyDataProvider();

// Get data
DataTable table = provider.GetData();

// Do stuff with your data...

答案 2 :(得分:0)

绝对是的。您可以从dll返回数据集/数据表。这就是其他开发人员为将数据层与业务层分离所做的事情。

我建议你阅读三层架构/ mvc等的一些东西