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;
    }

posted @ 2007-03-16 09:26  wenanry  阅读(799)  评论(0编辑  收藏  举报