DataTable常用方法

     protected   void  Page_Load( object  sender, EventArgs e)
    {

        DataTable myTb 
=   new  DataTable( " auto " );
        
        DataColumn myColid;
        myColid 
=   new  DataColumn();
        myColid.DataType 
=  System.Type.GetType( " System.Int32 " );
        myColid.ColumnName 
=   " id " ;
        myColid.ReadOnly 
=   true ;
        myTb.Columns.Add(myColid);

        DataColumn myColname 
=   new  DataColumn();
        myColname.DataType 
=  System.Type.GetType( " System.String " );
        myColname.ColumnName 
=   " Name " ;
        myTb.Columns.Add(myColname);

        DataColumn myColtimer 
=   new  DataColumn();
        myColtimer.DataType 
=  System.Type.GetType( " System.DateTime " );
        myColtimer.ColumnName 
=   " Timer " ;
        myTb.Columns.Add(myColtimer);

        
/// / 主键的创建
         // DataColumn[] PrimaryKeyColumns = new DataColumn[1];
        
// PrimaryKeyColumns[0] = myTb.Columns["id"];
        
// myTb.PrimaryKey = PrimaryKeyColumns;

        myTb.PrimaryKey 
=   new  DataColumn[] { myColid };

        DataRow myDr;

        myDr 
=  myTb.NewRow();
        myDr[
" id " =   1 ;
        myDr[
" Name " =   " Name " ;
        myDr[
" Timer " =  DateTime.Now.AddSeconds( 10 );
        myTb.Rows.Add(myDr);

        myDr 
=  myTb.NewRow();
        myDr[
" id " =   11 ;
        myDr[
" Name " =   " Name11 " ;
        myDr[
" Timer " =  DateTime.Now.AddSeconds( 8 );
        myTb.Rows.Add(myDr);

        myDr 
=  myTb.NewRow();
        myDr[
" id " =   111 ;
        myDr[
" Name " =   " Name111 " ;
        myDr[
" Timer " =  DateTime.Now.AddSeconds( 5 );
        myTb.Rows.Add(myDr);

        myDr 
=  myTb.NewRow();
        myDr[
" id " =   2 ;
        myDr[
" Name " =   " Name2 " ;
        myDr[
" Timer " =  DateTime.Now.AddSeconds( 3 );
        myTb.Rows.Add(myDr);

        System.Text.StringBuilder sb 
=   new  System.Text.StringBuilder();

        
string  sortOrder  =   " Timer asc " ;

        
// foreach (DataColumn dc in myTb.Columns)
        
// {
        
//      // sb.Append(dc.ColumnName+"<br/>");    
        
// }
        

        
// foreach (DataRow dr in myTb.Rows)
        
// {
        
//     foreach (DataColumn dc in myTb.Columns)
        
//     {
        
//         sb.Append(dr[dc] + "|");
        
//     }
        
//     sb.Append("<br/>");
        
// }
        
        myTb 
=  DeleteRows( " 11 " , myTb);
       
        
string  expression;
        expression 
=   " id>0 " ;
        DataRow[] foundRows;

        foundRows 
=  myTb.Select(expression, sortOrder);

        
for  ( int  i  =   0 ; i  <  foundRows.Length; i ++ )
        {
            sb.Append(foundRows[i][
" Name " ] + " = " + foundRows[i][ " Timer " ] + " <br/> " );
        }

        
// if (UpdataNews("1", myTb, "xiaohu"))
        
// {
        
//     sb.Append("update true");
        
// }
        
// else
        
// {
        
//     sb.Append("update False");
        
// }

        sb.Append(
" ====================================<br/> " );

        myTb 
=  DeleteRows( " 1 " , myTb);
        expression 
=   " id>0 " ;
        foundRows 
=  myTb.Select(expression, sortOrder);
        
for  ( int  i  =   0 ; i  <  foundRows.Length; i ++ )
        {
            sb.Append(foundRows[i][
" Name " +   " = "   +  foundRows[i][ " Timer " +   " <br/> " );
        }

        
//  用户判断当前的ID是不是存在
         if  (CheckIDBool( " 1 " , myTb))
        {
            sb.Append(
" Bool true " );
        }
        
else
        {
            sb.Append(
" Bool false " );
        }

        Response.Write(sb.ToString());
    }


    
///   <summary>
    
///  判断是不是存在
    
///   </summary>
    
///   <param name="key"></param>
    
///   <param name="myTb"></param>
    
///   <returns></returns>
     private   bool  CheckIDBool( string  key,DataTable myTb)
    {
        
bool  rs  =   false ;
        
// string strKey ="";
        
// strKey = "id=" + key;
        
// if (myTb.Select(strKey).Length > 0)
        
// {
        
//     rs = true;
        
// }

        
//  方法二:
        
// northwindDataSet1.Customers.FindByCustomerID("ALFKI");

        DataRow foundRow 
=  myTb.Rows.Find(key);

        
if  (foundRow  !=   null )
        {
            rs 
=   true ;
        }
        
return  rs;
    }

    
///   <summary>
    
///  根据主键查找DataTable中的值,返回DataRow
    
///   </summary>
    
///   <param name="key"></param>
    
///   <param name="myTb"></param>
    
///   <returns></returns>
     private  DataRow[] DtSelect( string  key, DataTable myTb)
    {
        
string  strKey  =   "" ;
        strKey 
=   " id= "   +  key;
        DataRow[] foundRows;
        foundRows 
=  myTb.Select(strKey);
        
return  foundRows;
    }
    
    
private  DataRow[] DtSelect( string  key, DataTable myTb,  string  sortOrder)
    {
        
string  strKey  =   "" ;
        strKey 
=   " id= "   +  key;
        DataRow[] foundRows;
        foundRows 
=  myTb.Select(strKey, sortOrder);
        
return  foundRows;
    }
    
    
private   bool  UpdataNews( string  key,DataTable myTb, string  name)
    {
        
bool  rs  =   false ;
        
string  strKey  =   "" ;
        strKey 
=   " id=' "   +  key  +   " ' " ;

        
if  (CheckIDBool(key, myTb))
        {
            DataRow[] customerRow 
=
            myTb.Select(strKey);
            customerRow[
0 ][ " Name " =  name;
            customerRow[
0 ][ " Timer " =  DateTime.Now.AddYears( - 1 );
            rs 
=   true ;
        }
        
return  rs;
    }

    
private  DataTable DeleteRows( string  key, DataTable myTb)
    {
        DataRow[] foundRows;
        foundRows 
=  DtSelect(key,myTb);
        
if  (foundRows.Length  >   0 )
        {
            myTb.Rows.Remove(foundRows[
0 ]);
        }
        
return  myTb;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值