none
请大家帮帮看看问题出在哪里,关于DataSet的填充 RRS feed

  • 问题


  •   public void display()
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
            con.Open();

            string sqlstring = "select * from student";
            DataSet ds = new DataSet();
            SqlDataAdapter sqlda = new SqlDataAdapter(sqlstring, con);
            sqlda.Fill(ds);
            GridView1.DataSource = ds.Tables[0];
            GridView1.DataBind();
            con.Close();
        }

    错误行:  sqlda.Fill(ds);
    与“System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)”最匹配的重载方法具有一些无效参数;

    参数“1”: 无法从“DataSet”转换为“System.Data.DataTable“,

    “DataSet”不包含“Tables”的定义,并且找不到可接受类型为“DataSet”的第一个参数的扩展方法“Tables”(是否缺少 using 指令或程序集引用?)    (呵呵;我使用了using System.Data;怎么vs2008不能智能感知Tables呢)
    2009年11月23日 14:21

答案

  • 你好!

    代码是没有问题的,应该是你当前的项目没有添加对 System.Data 的引用。左项目上点右键-添加引用-在 .net 选项卡,找到 system.Data 并引用它。同时在你的类中添加 using System.Data;

    知识改变命运,奋斗成就人生!
    • 已标记为答案 zda37 2009年11月25日 11:19
    2009年11月24日 4:41
    版主

全部回复

  •  GridView1.DataSource = ds.Tables[0].DefaultView;
         
    2009年11月23日 15:06
  • 你好!

    代码是没有问题的,应该是你当前的项目没有添加对 System.Data 的引用。左项目上点右键-添加引用-在 .net 选项卡,找到 system.Data 并引用它。同时在你的类中添加 using System.Data;

    知识改变命运,奋斗成就人生!
    • 已标记为答案 zda37 2009年11月25日 11:19
    2009年11月24日 4:41
    版主
  • 我试了一下代码没有问题~但是如果没有引用System.Data应该会在初始化ds的时候就报错~而不是后面才报错~另外System.Data.Common.DbDataAdapter.Fill有重载方法可以接受DataSet型参数~楼主可以把using的程序集贴上来看看~
    2009年11月25日 8:48
    版主
  • 你好:
     版主,谢谢你的指点,按照你的方法我的问题解决了。
     不过我不懂为什么我只在类中加 了using System.Data,而没有在项目上点右键-添加引用-在 .net 选项卡里引用 system.Data 时程序会出错呢。

    2009年11月25日 11:10
  • 你好!

    你可以这样理解。using 只是一个地址。虽然你写了地址,但你的程序集中没有实际的内容,自然就错了。

    知识改变命运,奋斗成就人生!
    2009年11月26日 9:27
    版主