• dataset 用法(2)


    1、为DataTable添加列 

    (1)添加列

    DataTable  tbl = ds.Tables.Add("User");

    DataColumn col =tbl.Columns.Add("UserID",typeof(int));

    col.AllowDBNull = false;

    col.MaxLength = 6;

    col.Unique = true;

    tbl.PrimaryKey = new DataColumn[]{tbl.Columns["UserID"]};

        当设置主键时,AllowDBNull自动设置为False;

    (2)添加自增列

    DataSet ds = new DataSet();

    DataTable tbl = ds.Tables.Add("User");

    DataColumn col = tbl.Columns.Add("UserID",typeof(int));

    col.AutoIncrement = true;

    col.AutoIncrementSeed = -1;

    col.AutoIncrementStep = -1;

    col.ReadOnly = true;

    2、修改DataTable中的数据

    (1)添加数据行

    DataRow row = ds.Tables["User"].NewRow();

    row["UserID"] = "123456";

    ds.Tables["User"].Rows.Add(row);

    object[] aValues ={"123456","张三"}

    da.Tables["User"].LoadDataRow(aValues,false);

    (2)修改当前行 

        修改行的内容 Datast并不会自动修改数据库中相应的内容,而是要使用SqlDataAdapter对象的Update方法来提交修改。

    //查找UserID为123456的用户,有则修改

    DataRow   User;

    User = ds.Tables["UserID"].Rows.Find("123456");

    if(User == null)

    //没有查找客户

    else

    {

    User.BeginEdit();

    User["UserName"] ="王五";

    User.EndEdit();

    }

    obejct[]  User ={null,”王五”} ;//null表示不修改该列的数据

    DataRow rowUser;

    rowUser = ds.Tables["UserID"].Rows.Find("123456");

    rowUser.ItemArray = User;

    (3)处理行中的空值 

    A:查看是否为空

    DataRow rowUser;

    rowUser = ds.Tables["UserID"].Rows.Find("123456");

    if(rowUser.IsNull("Address"))

    Console.WriteLine("Address is Null");

    else

    Console.WriteLine("Address is not Null");

    B:赋予空值

    rowUser["Address"] = DBNull.Value;

    (4)删除行 

    DataRow rowUser;

    rowUser = ds.Tables["UserID"].Rows.Find("123456");

    rowUser.Delete();

    (5)清除DataRow 

    A:

    DataRow rowUser;

    rowUser = ds.Tables["UserID"].Rows.Find("123456");

    rowUser.ItemArray = aUser;

    da.Tables["User"].Remove(rowUser);

    B:

    ds.Tables["User"].RemoveAt(intIndex);

    3、实例

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Data.SqlClient;

    using System.Data;

    namespace sqlconnection1

    {

    class Program

    {

    private void SQLConnectionF(string source, string select)

    {

    //创建连接

    SqlConnection con = new SqlConnection(source);

    SqlDataAdapter adapt = new SqlDataAdapter(select,con);

    try

    {

    con.Open();

    Console.WriteLine("connection is successful!");

    }

    catch (Exception e)

    {

    Console.WriteLine("connection error is :{0}", e.ToString());

    }

    SqlCommandBuilder mybuilder = new SqlCommandBuilder(adapt);

    //创建DataSet

    DataSet ds = new DataSet();

    //将数据添加到DataSet中

    adapt.Fill(ds,"mytest");

    //取出mytest表各列名

    Console.WriteLine("{0,-15} {1,-10} {2,-10}",ds.Tables["mytest"].Columns[0],

    ds.Tables["mytest"].Columns[1], ds.Tables["mytest"].Columns[2],

    ds.Tables["mytest"].Columns[3], ds.Tables["mytest"].Columns[4]);

    //输出DataSet中的所有数据

    Console.WriteLine("before up data");

    foreach (DataRow row in ds.Tables["mytest"].Rows)

    {

    Console.WriteLine("{0,-35} {1,-10} {2,-10} {3}",row[0] ,

    row[1] , row[2] , row[3]);

    }

    //将第一行的第四列的值修改为123

    DataRow rows1 = ds.Tables["mytest"].Rows[0];

    rows1[3] = "123";

    //删除该行

    rows1.Delete();

    //插入一行

    DataRow newrow = ds.Tables["mytest"].NewRow();

    newrow[0] = "mmm";

    newrow[1] = 36;

    newrow[2] = "aaa";

    newrow[3] = 222;

    ds.Tables["mytest"].Rows.Add(newrow);

    //在DataSet中查找数据

    DataColumn[] keys = new DataColumn[2];

    keys[0] = ds.Tables["mytest"].Columns["name"];

    keys[1] = ds.Tables["mytest"].Columns["number"];

    //keys[1] = ds.Tables["mytest"].Columns ["type"];

    ds.Tables["mytest"].PrimaryKey = keys;

    DataRow findrow = ds.Tables["mytest"].Rows.Find("rrr");

    if (findrow != null)

    {

    Console.WriteLine("{0}is find in tables",findrow);

    //delete the row

    Console.WriteLine("removing the rows ........");

    findrow.Delete();

    }

    //用DataSet中的数据更新表

    adapt.Update(ds,"mytest");

    //输出DataSet中的所有数据

    Console.WriteLine("after up data");

    foreach (DataRow row in ds.Tables["mytest"].Rows)

    {

    Console.WriteLine("{0,-15} {1,-10} {2,-10} {3}", row[0],

    row[1], row[2], row[3]);

    }

    Console.ReadLine();

    con.Close();

    }

    static void Main(string[] args)

    {

    string sou = "server=duanyf\SQLEXPRESS;" + "Initial Catalog=master;" + "UID = sa;" + "Password = dyf123";

    string sel = "SELECT name,number,type,low,high From dbo.spt_values WHERE number=36";

    Program sqlcon = new Program();

    sqlcon.SQLConnectionF(sou, sel);

    }

    }

    }

    【转自】http://www.cnblogs.com/hulang/archive/2011/01/11/1932567.html

  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/liuruitao/p/3783825.html
Copyright © 2020-2023  润新知