经常用dataset来bind数据 有个非常麻烦的问题就是需要转换数据格式
比如(int)dataset.Tables[0].Rows[0]["id"]
这个很是麻烦 怎么用给他加几个方法比如
int id=dataset.Tables[0].Rows[0]["id"].ToInt()
怎么搞呢?谁能帮我提供个思路或者是例子什么的?
是不是需要重写dataset或者datarow?

解决方案 »

  1.   

    dataset.Tables[0].Rows[0]["id"]是个object类型那个的变量
    你得重载object,还要重载关联的类,差不多要重写整个.net类库了
      

  2.   

    to time_is_life(今夜太冷)  
    晕啊 这么麻烦 有没有简单的方法 比如在类里面加几个方法而已主要是经常要对类型转来转去,写起来真累
      

  3.   

    危言耸听了吧。
    重写dataset继承自dataset里面加入这些方法就是了吧。
      

  4.   

    to zkxp(土豆好土喔)
    能给我简单写个例子吗?
      

  5.   

    zkxp(土豆好土喔) ,楼主是图方便,你这办法不比转型还麻烦么?好像转型就是最方便的法子了,没更简单的了
      

  6.   

    zkxp(土豆好土喔)  的方法应该是可行的 自己写一个dataset以后就方便了 就是我不知道具体应该怎么写 !
      

  7.   

    (int)dataset.Tables[0].Rows[0]["id"]和你所说的dataset.Tables[0].Rows[0]["id"].ToInt()相比,应该不算麻烦啊。人家一个object的数据,只有你知道它到底是什么类型的,最后还不是你自己ToInt,ToString....
    你可以试试类型化数据集==== 
    ~~~~ 我的Blog:http://blog.csdn.net/quou2002 
      

  8.   

    类型化数据集? 你说的意思是 数据实体类啊用代码自动生成器那样的?可是在多张表操作的时候 我不知道用实体类怎么表达那不是要用到很多类吗?
    这个问题只是突然想起来了,不知道怎么做,到底那种方便其实不重要的 只是想知道方法而已
    怎么在原因的dataset上面加个方法
      

  9.   

    ‘类型化数据集’还不是你说的数据实体类概念,你可以在msdn里键入‘类型化数据集’查看详细。==== 
    ~~~~ 我的Blog:http://blog.csdn.net/quou2002 
      

  10.   

    这么简单基础个问题,收到你的短信了。几句代码的事
    写个类继承自DataSet
    namespace Web.Custom
    {  public class DataSet : System.Data.DataSet//这里继承
      {//添加几个自定义方法
         public void newmethod1()
        {
         } 
         public void newmethod2()
        {
         }
       }
    }
    使用的时候就象使用DataSet一样。因为重写的类继承了DataSet的所有方法和类同时扩展了方法。
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
      Web.Custom.DataSet ds = new Web.Custom.DataSet();
      SqlDataAdapter adp = new SqlDataAdapter();
      adp.Fill(ds,"***");
      ds.newmethod1();
    }
      

  11.   

    你可以定义一个函数
    public int ConvertToInt(int parm1,int parm2,string id)
    {
      return ((int)dataSet.Tables[parm1].Rows[parm2][id]);
    }
    每次都调用这个函数就可以了
      

  12.   

    to boy_north() 
    这个问题只是希望探讨一下DataSet 如果是实际的问题的话 我也不会这样钻牛角尖了!呵呵to zkxp(土豆好土喔) 
    多谢你的回答,最近忙 没时间上csdn 你说的方法是集成DataSet然后添加自己的方法
    但是我想要的和你说的有些差别我是想要这样的效果
    int id=dataset.Tables[0].Rows[0]["id"].ToInt()在任何Rows[X]["X"] 下面多写一个方法ToInt()
    这样怎么实现 应该不单单是在DataSet加几个方法那样吧!我的qq:260968  gmail:[email protected]
    如果可以的话希望在线聊一下
      

  13.   

    Rows[X]["X"] 是object类型 
    Rows[X]["X"].ToInt() 需要重写object类,可能不太现实吧
      

  14.   

    如果要重写Rows[X]["X"]索引器的话需要重写的类很多dataset,datatable,datarow 还有object
    应该很划不来吧
      

  15.   

    我认为最简单的方法就是:使用强类型的DateSet类了