SqlDataAdapter适配器的用法(ADO.NET无连接模式访问数据库)

在ADO.NET中,无连接模式访问数据库通常是按照以下步骤进行:

首先,将数据从数据库服务器通过SQL查询命令获取到内存中的DataSet和DataTable中,并且断开与数据库的连接

然后,在内存中根据业务逻辑对DataSet和DataTable 中的数据进行合理的运算。

最后,再连接到数据库,将DataSet和DataTable中的更改提交到数据库服务器。

/***************************************************************************************************************************************

由此可见,在ADO.NET中,通过SqlDataAdapter和DataSet联合使用实现基于无连接的数据库访问。

SqlDataAdapter类作为本地DataSet或者DataTable与数据库服务器之间的连接器,提供用于填充DataSet和更新SQL Server数据库的一组数据命令和一个数据库链接。

【关于Fill()和Update()方法】

(1)SqlDataAdapter类的Fill()和Update()方法都是自动打开和关闭数据库链接。在执行之前,至少要指定它的SelectCommand属性,该SqlCommand对象记录了Fill()方法用来查询数据的SQL命令。Update()方法会根据数据的更改,自动调用DeleteCommand、InsertCommand和UpdateCommand中的某一个提交数据。

(2)Fill()方法用于从数据库服务器获取数据并填充到DataSet和DataTable中;

          Update()方法用于将DataSet和DataTable中的数据更改提交到数据库服务器中。

(3)FillScheme()方法时从数据库服务器获取数据架构到本地数据集或数据表。如果只是需要数据结构,则调用这个函数方法

》》》》》Fill()方法的使用:(重载)

1、int Fill(DataSet dataSet)》》》建议使用这个就可以了,简单

      根据SQL查询命令从数据库获取数据,并且自动创建一个名为Table的DataTable对象来保存数据,然后将DataTable对象添加到dataSet中。

2、int Fill(DataTable dataTable)

      根据SQL查询命令从数据库获取数据,并且自动将数据保存到dataTable对象中。

【例子1】方法1:

            string strSql = "Data Source=VQJREZV7DVSK2QA;Initial Catalog=gridviewAPP;User ID=sa;Password=admin@123456";
            SqlConnection connew = new SqlConnection(strSql);
            SqlCommand cmd = connew.CreateCommand();
            cmd.CommandText = "select userName,sex,address from userInfo";
            //创建SqlDataAdapter对象
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            adapter.Fill(ds);

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

            dt.Rows[0]["sex"]="男";

            dt.Rows.Add("小红","女","123456");

            adapter.Update(ds);

【例子2】方法2:

 string sqluser = "select * from userinfo where username='"+textBox1.Text.Trim()+"'";
            SqlDataAdapter adp = new SqlDataAdapter(sqluser, sql.sqlConnection);
            DataSet ds = new DataSet();
            adp.Fill(ds, "userinfo");//填充数据集
            /*数据的绑定*/
            Binding newBind = new Binding("Text", ds, "userinfo.userpwd");
            textBox2.DataBindings.Add(newBind);       

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 string sqlScore = @"select score from UserInfo where userName='" + userName + "'";
            SqlDataAdapter adp = new SqlDataAdapter(sqlScore, DBConnect.ConnString);
            DataSet ds = new DataSet();
            adp.Fill(ds, "UserInfo");
            label6.Text = ds.Tables["UserInfo"].Rows[0][0].ToString();//显示积分

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                     无奈而华丽丽的分割线【SqlDataAdapter初始化】

*****************************************************************************************************

【1】初始化SqlDataAdapter类的新实例

        protected void Button1_Click(object sender, EventArgs e)
        {
            string conString = "data source=127.0.0.1;initial catalog=codematic;user id=sa;password=";
            SqlConnection myConnection = new SqlConnection(conString);
            SqlCommand cmd = myConnection.CreateCommand();
            cmd.CommandText = "SELECT * FROM P_Product";
            DataSet ds = new DataSet();
            myConnection.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = cmd;
            adapter.Fill(ds, "ds");
            myConnection.Close();

            Label1.Text = "1查询结果";
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }

【2】使用指定的SqlCommand初始化SqlDataAdapter类的新实例

        protected void Button2_Click(object sender, EventArgs e)
        {
            string conString = "data source=127.0.0.1;initial catalog=codematic;user id=sa;password=";
            SqlConnection myConnection = new SqlConnection(conString);
            DataSet ds = new DataSet();
            SqlCommand cmd = myConnection.CreateCommand();
            cmd.CommandText = "SELECT * FROM P_Product";
            myConnection.Open();
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(ds, "ds");
            myConnection.Close();

            Label1.Text = "2查询结果";
            GridView1.DataSource = ds;
            GridView1.DataBind();

        }

【3】使用SqlConnection和Sqlcommand对象初始化SqlDataAdapter类的新实例

        protected void Button3_Click(object sender, EventArgs e)
        {
            string conString = "data source=127.0.0.1;initial catalog=codematic;user id=sa;password=";
            string strSQL = "SELECT * FROM P_Product";
            SqlConnection myConnection = new SqlConnection(conString);
            DataSet ds = new DataSet();
            myConnection.Open();

           //这种方法则不需要使用SqlCommand语句了
            SqlDataAdapter adapter = new SqlDataAdapter(strSQL,myConnection);
            adapter.Fill(ds, "ds");
            myConnection.Close();

            Label1.Text = "3查询结果";
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }

【4】使用一个链接字符串和SqlCommand对象初始化SqlDataAdapter类的实例

        protected void Button4_Click(object sender, EventArgs e)
        {

            string conString = "data source=127.0.0.1;initial catalog=codematic;user id=sa;password=";
            string strSQL = "SELECT * FROM P_Product";
            DataSet ds = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(strSQL,conString);
            adapter.Fill(ds, "ds");

            Label1.Text = "4查询结果";
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }

【5】使用selectcommand字符串和SqlConnection对象初始化SqlDataAdapter类的实例

        protected void Button5_Click(object sender, EventArgs e)
        {
            string conString = "data source=127.0.0.1;initial catalog=codematic;user id=sa;password=";
            SqlConnection myConnection = new SqlConnection(conString);
            string strSQL = "SELECT * FROM P_Product";

            DataSet ds = new DataSet();
            myConnection.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(strSQL, myConnection);
            adapter.Fill(ds, "ds");
            myConnection.Close();

            Label1.Text = "5查询结果";
            GridView1.DataSource = ds;
            GridView1.DataBind();

        }

清空GridView数据
        protected void Button7_Click(object sender, EventArgs e)
        {
            Label1.Text = "数据清空";
            GridView1.DataSource = null;
            GridView1.DataBind();
        }

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值