2012-07-22 79 views
3

我正在写一个方法来查询一个表并返回一个包含指定列的对象数据集。此外,我的用户名&密码有问题,所以我正在使用Windows身份验证,但我不太清楚在我写到现在的代码段中。在方法中返回一个数据集作为对象

protected void GetProgramList() 
    { 
     SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"); 
     SqlCommand cmd = new SqlCommand("SELECT ProgramName FROM Program", cn); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataSet1 ds1 = new DataSet1(); 

    } 

我一直在试图遵循MS官方文档,但我不确定我要去哪里?有人可以帮助我一些链接或片段?

+0

你在找什么在这里解释。 http://stackoverflow.com/questions/6073382/read-sql-table-into-c-sharp-datatable – test 2012-07-22 06:07:49

+0

感谢您的链接! – unknownsatan 2012-07-22 06:09:11

回答

7

我会说你有2个选择这里的读者: 1.做一个DataSet类变量,因此它的参考可以访问(将其访问修饰符设置为public,以便可以从其他类访问) 2.或者使用DataSet的返回类型创建方法。但在这种情况下,另一方面也必须设置为接收数据集:

// 2。解决方案:

private void GetData() 
    { 
     //from inside some method: 
     DataSet ds = GetProgramList(); 
    } 

    protected DataSet GetProgramList() 
    { 
     DataSet ds1 = new DataSet(); 
     using (SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;")) 
     { 
      using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT ProgramName FROM Program", cn)) 
       da.Fill(ds1, "TableName1"); 
     } 
     return ds1; 
    } 
    // 


//1. solution: 
class YourClass 
{ 
    DataSet ds1; 
    protected void GetProgramList() 
    { 
     SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"); 
     SqlCommand cmd = new SqlCommand("SELECT ProgramName FROM Program", cn); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     ds1 = new DataSet(); 
    } 
} 
+0

我在这里犯的错误是,我没有返回任何东西,我正在使用一个无效的方法。我应该使用什么类型的数据集? – unknownsatan 2012-07-22 06:23:42

+0

DataSet返回类型的课程 - 如果你使用我的第二个解决方案! ...如果你使用我的第一个解决方案,你使用void返回类型! – 2012-07-22 06:31:25

+0

现在让我试试这个。 – unknownsatan 2012-07-22 06:34:06

0

建议: “使用” System.Data和System.Data.SqlClient,并使用 “SqlDataReader对象”:

无论是读你的日常家居(一般首选)或将SqlDataReader传回给调用者(作为函数返回)。

而且一定要.Close()时,即可大功告成:)

1

放置在appSettings部分在连接字符串中的app.config或web.config中

public string GetSqlConnection() 
    { 
     return System.Configuration.ConfigurationManager.AppSettings["SqlConnectionString"]; 
    } 



    public DataSet getDataSet(string sql) 
    { 
     DataSet ds = new DataSet(); 
     SqlConnection conn = new SqlConnection(GetSqlConnection()); 
     SqlDataAdapter da = new SqlDataAdapter(sql, conn); 
     da.Fill(ds); 
     conn.Close(); 
     conn.Dispose(); 
     da.Dispose(); 
     return ds; 
    }