各位大侠,大家好:
       我在WINFORM上填加了一个dataset1,并将其与datagridview绑定,然后在datagridview里设置了每个字段的一些属性(如:字段名显示中文),现在我在代码里写了个函数返回dataset,public dataset (string sql),我想把函数返回的dataset赋值给dataset1,但是编译不过,提示"无法进行类型转换",请大家帮忙.
       注意:我不想在WINFORM上再放adapter,然后用它去填充dataset1,我只想通过代码方式进行填充.多谢

解决方案 »

  1.   

    public dataset GetData(string sql)
      

  2.   

    public dataset 方法名称(string sql),
      

  3.   

    dataset1应该是个强类型的DataSet吧,你Form加载的时候加一句
    dataset1.Table[0].Rows.Add(dataset1.Tables[0].NewRow())试试
      

  4.   

    你這樣綁定不行,就換個方式呀。
    不是有個方法返迴Dataset麼。直接在Page_Load方法中綁唄。
    datagridview.DataSouse=取方法的函數。
    datagridview.DataBind();這樣就行瞭的。
      

  5.   

    多谢各位的指点.
    我只所以在窗口上放一个dataset1,是因为直接在属性里就能设置一些属性,不想在代码里去写这些;我如果写datagridview.DataSouse=取方法的函數。 
    datagridview.DataBind();這樣就行瞭的。 
    我窗口上不就不能用可视化的方式去设置一些属性了吗?
      

  6.   

    我赋值时,dataset1=dataset;这条语句报错,类型不能转换,好象还提示了什么强类型.那我应该怎么转换呢?
      

  7.   

    dataset1的声明?dataset的获得?
      

  8.   

    这种方式可能吗?
    DataSet 必须得通过 DataAdapter 从数据库中读取数据吧
      

  9.   

    下面是我的函数的定义,通过此函数返回的dataset;我想把它赋给我在窗口上直接生成的强类型dataset1;但是报错,类型不能转换,好象还提示了什么强类型.请各位给把把脉!多谢public static DataSet RetriveDataSet(string strsql)
    {
                if (strsql == null || strsql == string.Empty)
                {
                    return null;
                }
                
                if (OraConn == null)
                    return null;            using (OracleDataAdapter da = new OracleDataAdapter(strsql, OraConn))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        da.Fill(ds);
                        
                    }
    }                catch (OracleException e)
                    {
                        
                    }
                    return ds;
                }
                
            }
      

  10.   

    这里看不出问题,你的dataset1的声明呢?
      

  11.   

    我的dataset1是通过菜单中填加数据源的方式加的,里边我选择了我自己数据库中的一张表;然后我将dataset1放到窗口上,并将表中的字段和窗口上的一些textbox进行了绑定,就是这样的.然后我想通过上面的函数返回一个dataset,并将dataset赋值给此dataset1达到在一些textbox中显示数据记录的目的.
      

  12.   

    我想实现的功能就是:通过菜单中的填加数据源,可视化生成dataset1(此数据源中包含一张数据库表),然后在窗口上放一些TEXTBOX等控件,并可视化的方式将dataset1表中的某些字段和控件绑定;然后我在数据库操作类中定义了通用的返回dataset的函数(如:public dataset (sring sql)),调用此函数返回的dataset赋值给dataset1.我只所以这样做有两个原因:
    1,可视化绑定控件比较直观,方便,省得写代码去绑定
    2,定义了数据库操作类,其中包含各种数据库操作,这样比较统一.但是现在dataset1=dataset时,总是报无法将类型system.data.dataset隐式转换成dataset1;即使dataset1=(dataset1)dataset也不行.
    请问,各位老大,我该怎样实现.或者有什么好的建议.谢谢
      

  13.   

    你的dataset给dataset1干什么啊,多此一举啊,直接赋值给datagridview的数据源就可以了
      

  14.   

    添加数据源的方式?看看你的代码中,关于dataset1部分的声明。
      

  15.   

    public dataset (string sql) as dataset
      

  16.   

    大家没遇到过这种情况吗?郁闷ING
      

  17.   

    看看dataset1的声明和定义部分,看看有些什么属性或方法,可以使用或者导入DataSet中的数据。
      

  18.   

    说句实话,如果你的DataSet通过其他方法返回的话,有必要在Form中添加数据源么?
    如果老老实实地在代码中完成绑定的工作,什么麻烦都没有了。
      

  19.   

    楼上的兄弟,感谢你的回复,我就是不想通过代码去绑定数据源,所以在FORM中添加了数据源能直接通过属性
    设置就能绑定数据源,不必再通过代码去绑定。我觉得在代码中去绑定很麻烦。特别是做成FREEFORM格式的录
    入界面示,我放了N个TEXTBOX,COMBOX等控件,我想直接通过属性设置去绑定,这样直观且方便。当时为了统一
    利用我的数据库操作类,所以我想将函数返回的DATASET赋给FORM上的数据源,不知道我这种想法是不是有问题
    ,我以前是用POWER BUILDER做数据库程序的,不知道VS种,我这种想法能否实现。
      

  20.   

    datagridview.DataSource = dataset.Tables[0].DefaultView;
    这样绑定就应该不会有问题了
      

  21.   

    如果我要绑定的不是grid呢,而是自己填加到窗口上的一些控件,如:TEXTBOX,COMBOX等,我难道不能通过属性直接设置绑定吗?得一个个的写代码去实现绑定.
      

  22.   

    这样做,其实有很大的自由,不同的控件可以绑定到不同的属性,比如CheckBox,可以绑定到Text,也可以绑定到Checked,甚至于用户自己定义的控件,可以绑定到用户自己定义的属性。
      

  23.   

    你的dataset1已经有schema了咯?那么你的dataset1=ds1怎么可能不出错嘛你仔细看看dataset1的类型成了dataset1,而ds1的类型是System.DataSet类型,已经不一样了。
      

  24.   

    你的dataset1和dataset的架构不一样了,我想只能通过一个datarow然后用一个for语句进行数据赋值
      

  25.   

    TO:fuda_1985 
    【我记得上个月有个人给了你说的问题的解决办法,也是不想一个一个的设置,而用的属性来做的,不过不是你这种做法。可以参照一下别人的!】能给个链接地址吗?找了N久没找到,多谢