tankgoing
2018-02-26 01:43
采纳率: 61.3%
浏览 7.6k

DataTable怎么取指定行的值

比如我有一个DataTable dt

序号 帐号 次数
1    111  2
2    222  3
3    333  4

现在我要把第二列的那3个值取出来然后得到一个string的数组 请问要怎么操作 纠结2天了

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • qq_33581175 2018-02-26 02:36
    已采纳
    可以这样操作
        int count = dt.Rows.Count;
    string[] result = new string[count];
    for (int i = 0; i < count; i++)
            {
               result[i] = dt.Rows[i][1].ToString();
            }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 老许要老婆么 2018-02-26 01:43

    Object obj = dt.Tables[0].Rows[2].celll[2] 类似于这样写就可以 , obj 可以强转为String 数组,

    评论
    解决 无用
    打赏 举报
  • 老许要老婆么 2018-02-26 02:12

    //上面错的!第二列应该是1
    Object obj = dt.Tables[0].Rows[1].celll[2] 类似于这样写就可以 , obj 可以强转为String 数组,

    评论
    解决 无用
    打赏 举报
  • bbbg 2018-02-26 02:12

    没有捷径, 一个个去取吧,

    List list = new List();

    list.add(dt.Rows[1][0].ToString())
    list.add(dt.Rows[1][1].ToString())
    list.add(dt.Rows[1][2].ToString())

    string[] arr = list.ToArray()

    评论
    解决 无用
    打赏 举报
  • 直接遍历放入数组中

    
            int count = dt.Rows.Count;
            string[] Accounts = new string[count];
            for (int i = 0; i < count; i++) Accounts[i] = dt.Rows[0][1].ToString();
    
    评论
    解决 无用
    打赏 举报
  • ykandyp 2018-02-26 02:26
        遍历吧
                int count = dt.Rows.Count;
        string[] result = new string[count];
        for (int i = 0; i < count; i++)
                {
                   result[i] = dt.Rows[i][1].ToString();
                }
    
    评论
    解决 无用
    打赏 举报
  • qq_36361624 2018-02-26 02:50

    试试吧int count = dt.Rows.Count;
    string[] result = new string[count];
    for (int i = 0; i < count; i++)
    {
    result[i] = dt.Rows[i][1].ToString();
    }

    评论
    解决 无用
    打赏 举报
  • 忧伤的熊二 2018-02-27 01:32

    你这个datatable添加数据的时候数据源的每一行作为一个model对象,这样对行操作读写都很方便

    评论
    解决 无用
    打赏 举报
  • 小5聊 2018-02-28 02:24
        //获取DataTable指定行的值
        /*
            序号 帐号 次数
            1    111  2
            2    222  3
            3    333  4
            现在要把第二列的那3个值取出来然后得到一个string的数组
         */
        public string[] GetStringArr(DataTable dt,int num)
        {
            if(dt==null) return null;
            int _col=dt.Columns.Count; //获取DataTable的列数,作为数组的长度
            string[] arr = new string[_col]; 
            int _i = 0;
            foreach (DataRow dr in dt.Rows)
            {
                if (_i == num)
                {
                    for (int i = 0; i < _col; i++) //循环列的值保存到数组里
                    {
                        arr[i] = dr[i].ToString();
                    }
                    break;
                }
                else _i++;
            }
    
            return arr;
        }
                ![图片说明](https://img-ask.csdn.net/upload/201802/28/1519784664_485643.png)
                ![图片说明](https://img-ask.csdn.net/upload/201802/28/1519784672_278746.png)
    
    评论
    解决 无用
    打赏 举报
  • 流浪的狐狸 2018-06-08 09:12

    string[] strResult=new string[];
    for(var i=0;i<datatable.rows.count;i++)
    {
    strResult.push(datatable.rows[i]["账号"].tostring());
    }

    评论
    解决 无用
    打赏 举报
  • qq_34654653 2018-03-01 07:32

    DataRow dr=dt.Rows[行];//取指定某行的值
    string str=dt.Rows[行][列].ToString();//取指定某行某列的值

    评论
    解决 无用 1
    打赏 举报

相关推荐 更多相似问题