打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VA10.4数据适配-DataAdapter对象

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

using System.Data;

namespace VA10._数据适配_DataAdapter对象

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            //更改数据 ExecuteScalar  返回一个值 一般用于返回一个值的语句, 如求数据统计 count()

            string constr = "Server=XX;user=sa;pwd=XXX;database=XXXX;";

            SqlConnection myCon = new SqlConnection(constr);

            try

            {

                myCon.Open();

                string sql = " select  *  from  [000] ";

                SqlDataAdapter myda = new SqlDataAdapter(sql, myCon); //DataAdapter 数据适配 

                DataSet myds = new DataSet();     //声明数据集DataSet 

                myda.Fill(myds, "[000]");       //向 myds 填充数据

                OutValues(myds);                //数据填充成功

            }

            catch (Exception myex)

            {

                MessageBox.Show(myex.Message.ToString());

            }

            finally

            {

                myCon.Close();

            }

        }

        //向DataSet 读取执行命令

        private void button2_Click(object sender, EventArgs e)

        {

                //DataAdapter对象可用于执行数据库的命令操作,含有四个不同的操作命令

                //1.SelectCommand :用于选取数据源中的记录

                //2.InsertCommand :同于向数据源中新插入一条记录

                //3.UpdateCommand :用于更新数据源中的数据

                //4.DeleteCommand :用于删除数据源中的记录

            string constr = "Server=XX;user=sa;pwd=XXX;database=XXX;";

            SqlConnection myCon = new SqlConnection(constr);

            try

            {

                //更新数据源文件

                myCon.Open();

                string updatesql = "update [000]  set 总金额='1000'  where id ='3000'";

                string sql = " select  *  from  [000] ";

                SqlDataAdapter myda = new SqlDataAdapter(sql, myCon);//DataAdapter 数据适配 

                myda.UpdateCommand = new SqlCommand(updatesql, myCon);   //更新数据命令   

                //显示数据 向 myds 填充数据  

                DataSet myds = new DataSet();

                myda.Fill(myds, "mytable"); ///向 myds 填充数据  acceptchang处于true状态      

                MessageBox.Show("未更新原dataset对象内容");

                OutValues(myds);

                DataRow row = myds.Tables[0].Rows[0];

                row["姓名"] = "OH_15345";               // (acceptchang处于true状态   不更新,  将行发生变动   )

                MessageBox.Show("更改后dataset对象内容");

                myda.Update(myds, "mytable");     //为指定表明的Table 更新  

                OutValues(myds); 

            }

            catch (Exception myex)

            {

                MessageBox.Show(myex.Message.ToString());

            }

            finally

            {

                myCon.Close();

            }

        }

        public static void OutValues(DataSet ds)

        {

                            foreach (DataTable dt in ds.Tables)

                            {

                                MessageBox.Show("表名" + dt.TableName);

                                //表行

                                foreach (DataRow row in dt.Rows)

                                {

                                    //表列

                                    foreach (DataColumn col in dt.Columns)

                                    {

                                        //根据 行 列  输出字段

                                        MessageBox.Show(row[col] + "\t");

                                    }

                                }

                            }

        }

        private void button3_Click(object sender, EventArgs e)

        {

            string constr = "Server=H6;user=sa;pwd=123123;database=2016-04-22;";

            SqlConnection myCon = new SqlConnection(constr);

            try

            {

                //更新数据源文件

                myCon.Open();

                string sql = " select  *  from  [000] where id='3000' ";

                SqlDataAdapter myda = new SqlDataAdapter(sql, myCon);//DataAdapter 数据适配 

/*

注意打开和关闭连接的处理

在调用SqlCommand对象执行sql命令之前,需要保证与该对象关联的SqlConnection对象时打开的,否则SqlCommand的方法执行时将引发一个异常,但是我们在上面的代码中看到,SqlDataAdapter没有这样的要求。

如果调用SqlDataAdapter的Fill方法,并且其SelectCommand属性的SqlConnection是关闭状态,则SqlDataAdapter会自动打开它,然后提交查询,获取结果,最后关闭连接。如果在调用Fill方法前,SqlConnection是打开的,则查询执行完毕后,SqlConnection还将是打开的,也就是说SqlDataAdapter会保证SqlConnection的状态恢复到原来的情形。

*/

                 sql = " select  *  from  [000] where id='3001'";

                SqlDataAdapter myda2 = new SqlDataAdapter(sql, myCon);//DataAdapter 数据适配 

                DataSet ds = new DataSet();

                //myda.Fill(ds, "MyTableName");  ///Fill方法的重载,通过指定DataTable

                //myda2.Fill(ds, "Orders");  ///Fill方法的重载,通过指定DataTable

/*

以上代码会导致连接被打开和关闭两次,在调用Fill方法时各一次。为了避免打开和关闭SqlConnection对象,在调用SqlDataAdapter对象的Fill方法之前,

我们可以先打开SqlConnection对象,如果希望之后关闭连接,我们可以再调用Close方法,就像这样:

*/

                myda.Fill(ds, "MyTableName");

                myda2.Fill(ds, "Orders");

                myCon.Close();

                OutValues(ds);

                //获取DataSet数据集中的book1表

                DataTable dt = ds.Tables["MyTableName"];

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    for (int j = 0; j < dt.Columns.Count; j++)

                    {

                       MessageBox.Show (dt.Rows[i][j].ToString());

                    }

                }

            }

            catch (Exception myex)

            {

                MessageBox.Show(myex.Message.ToString());

            }

            finally

            {

                myCon.Close();

            }

        }

        private void Form1_Load(object sender, EventArgs e)

        {

        }

    }

}

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlClient;

using System.Data;

namespace ConsoleApplication6

{

    class Program

    {

        static void Main(string[] args)

        {      //DataAdapter对象时DataSet和数据源之间的桥梁,可以建立并初始化数据表(DataTable) ,对数据源执行SQL指令,

            //与Dataset对象结合,提供Dataset对象存取数据,可视为DataSet对象操作核心

            string constr = "Server=XXX;user=sa;pwd=XXX;database=XXXX";

            SqlConnection mycon = new SqlConnection(constr);

            try {

                //mycon.Open();

                //string sql = "select top 10 userid,name,job,createname from [View_HN_KqQingJia] ";

                ////DataAdapter 数据适配 

                //SqlDataAdapter myda = new SqlDataAdapter(sql, mycon);

                ////声明数据集DataSet 

                //DataSet myds = new DataSet();

                ////向 myds 填充数据

                //myda.Fill(myds, "[View_HN_KqQingJia]");

                //Console.WriteLine("数据填充成功!");

                //OutValues(myds);

                //DataAdapter对象可用于执行数据库的命令操作,含有四个不同的操作命令

                //1.SelectCommand :用于选取数据源中的记录

                //2.InsertCommand :同于向数据源中新插入一条记录

                //3.UpdateCommand :用于更新数据源中的数据

                //4.DeleteCommand :用于删除数据源中的记录

                //更改数据源文件

                mycon.Open();

                string sql = "select top 10 userid,name,job,createname from [View_HN_KqQingJia] ";

                string updatesql = "update View_HN_KqQingJia set createname='admin' where userid='OH_00006'";

                //DataAdapter 数据适配 

                SqlDataAdapter myda = new SqlDataAdapter(sql,mycon);

                myda.UpdateCommand = new SqlCommand(updatesql, mycon);   //更新数据命令   

                DataSet myds = new DataSet();       //显示数据 向 myds 填充数据  

                myda.Fill(myds, "mytable");         //向 myds 填充数据  acceptchang处于true状态                               

                Console.WriteLine("未更新原dataset对象内容");

                OutValues(myds);

                //改变显示的数据

                DataRow row = myds.Tables[0].Rows[3];

                row["createname"] = "123";

                myda.Update(myds,"mytable");

                Console.WriteLine("更改后dataset对象内容");

                OutValues(myds);

                Console.ReadKey();

            }

            catch (Exception ex){

                Console.WriteLine(ex.Message.ToString ());

            }

           finally{}

        }

        public static void OutValues(DataSet ds) {

            foreach (DataTable dt in ds.Tables) {

                  Console.WriteLine("表名"+dt.TableName);

                 //表行

                 foreach(DataRow row in dt.Rows ){

                     //表列

                     foreach (DataColumn col in dt.Columns) {

                         //根据 行 列  输出字段

                         Console.Write(row[col]+"\t"); 

                     }

                     Console.WriteLine();

                 }

            }

        }

        }

    }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#连接SQL SERVER数据库的详细步骤!
[转帖]ADO.net中适配器DataAdapter的说明
ASP.net连接SQL数据库的源代码
ADO.net
UpdateDataSet更新資料(三層架構)
面试题2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服