3

我正在编写一个方法,它将查询一个表并返回一个包含指定列的Dataset对象。此外,我的用户名和密码有问题,所以我正在使用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 文档,但我不确定我要去哪里?有人可以帮我提供一些链接或片段吗?

4

4 回答 4

7

我想说你在这里有 2 个选项:1. 制作一个 DataSet 类变量,因此可以从整个类访问它的引用(将其访问修饰符设置为 public,以便可以从其他类访问它) 2. 或创建一个方法及其返回类型为 DataSet。但在这种情况下,另一端也必须设置为接收 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();
    }
}
于 2012-07-22T06:21:54.207 回答
2

将您的连接字符串放在 app.config 或 web.config 的 AppSettings 部分

   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;
    }
于 2014-02-22T00:33:54.340 回答
0

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

要么读取例程中的所有内容(通常首选),要么将 SqlDataReader 传递回调用者(作为函数返回)。

完成后请务必 .Close() 阅读器 :)

于 2012-07-22T06:09:41.290 回答
0

SQLDataAdapter basic将帮助您开始创建连接并在代码中使用它的基础知识。

于 2012-07-22T06:22:08.487 回答