C#.Net中ADO.net数据增删查改操作

原创 2017年09月22日 12:03:08

在ASP.Net窗口中,进行数据库的查询,添加,删除,修改操作

在网页中使用GridView进行数据库表单的显示,以及基本的数据库操作,SqlCommand和SqlDataAdapter

查询功能,插入数据功能:(在Textbox中输入内容,点击按钮执行查询插入功能)

 protected void Button1_Click(object sender, EventArgs e)    //查询功能
        {
            if (this.TextBox1.Text != "")       //判断输入框是否为空
            {
                //与数据库进行连接
                SqlConnection myConn = new SqlConnection("Data Source=WIN8;Initial Catalog=SqlDataTest01;Persist Security Info=True;User ID=sa;Password=123456");
                myConn.Open();
                //查询操作
                string sqlStr = "select * from UserTable where UserName=@UserName";
                SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
                myCmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50).Value = this.TextBox1.Text.Trim();
                SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
                //将查询的结果添加到DataSet中
                DataSet myDs = new DataSet();
                myDa.Fill(myDs);
                //在GridView中显示查询到的结果
                if (myDs.Tables[0].Rows.Count > 0)
                {
                    GridView1.DataSource = myDs;
                    GridView1.DataBind();
                }
                else
                {
                    Response.Write("<script>alert('查询结果为空')</script>");
                }
                myDa.Dispose();
                myDs.Dispose();
                myConn.Close();
            }
            else
            {
                Response.Write("<script>alert('请输入查询的用户名')</script>");
            }
        }




 protected void Button2_Click(object sender, EventArgs e)
        {
            if (this.TextBox2.Text != ""||this.TextBox3.Text!="")
            {
                SqlConnection myConn = new SqlConnection("Data Source=WIN8;Initial Catalog=SqlDataTest01;Persist Security Info=True;User ID=sa;Password=123456");
                myConn.Open();

                string sqlStr = "insert into UserTable values ('" + this.TextBoxID.Text.Trim() + "','" + this.TextBox2.Text.Trim() + "','" + this.TextBox3.Text.Trim() + "')";
                SqlCommand myCmd = new SqlCommand(sqlStr,myConn);
                myCmd.ExecuteNonQuery();
                myConn.Close();
                this.bind();
            }
            else
            {
                
                Response.Write("<script>alert('请输入用户名密码')</script>");
            }

            }


删除功能,更新:(在GridView属性事件中进行数据删除操作)

  protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            // string userN =GridView2.DataKeys[e.RowIndex].Value.ToString();
            //获取删除字段所在行的关键字段的值
            int userid = Convert.ToInt32(GridView2.DataKeys[e.RowIndex].Value);
            string sqlStr = "delete from UserTable where ID= "+userid;
            SqlConnection myConn = new SqlConnection("Data Source=WIN8;Initial Catalog=SqlDataTest01;Persist Security Info=True;User ID=sa;Password=123456");
            myConn.Open();
            SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
            myCmd.ExecuteNonQuery();
            myCmd.Dispose();
            myConn.Close();
            GridView2.EditIndex = -1;
            this.bind();
        }
 protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView2.EditIndex = e.NewEditIndex;
            this.bind();
        }
        protected void GridView2_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            //更新操作时会对页面进行刷新
            int userid = Convert.ToInt32(GridView2.DataKeys[e.RowIndex].Value);
            string UName = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
            string PWord = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString();
            string sqlStr = "update UserTable set UserName='"+UName+ "',PassWord='" +PWord+ "' where ID =" + userid;
            SqlConnection myConn = new SqlConnection("Data Source=WIN8;Initial Catalog=SqlDataTest01;Persist Security Info=True;User ID=sa;Password=123456");
            myConn.Open();
            SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
            myCmd.ExecuteNonQuery();
            myCmd.Dispose();
            myConn.Close();
            GridView2.EditIndex = -1;
            this.bind();
        }
        protected void GridView2_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView2.EditIndex = -1;
            this.bind();
        }
        protected void bind()
        {
            SqlConnection myConn = new SqlConnection("Data Source=WIN8;Initial Catalog=SqlDataTest01;Persist Security Info=True;User ID=sa;Password=123456");
            myConn.Open();

            string sqlStr = "select * from UserTable";
            SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);
            DataSet myDs = new DataSet();
            myDa.Fill(myDs);
            GridView2.DataSource = myDs;
            GridView2.DataKeyNames = new string[] { "ID" };
            GridView2.DataBind();
            myDa.Dispose();
            myDs.Dispose();
            myConn.Close();
        }

结果截图:


在函数编辑过程中属性事件的选择:


在查询操作中:

  myCmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50).Value = this.TextBox1.Text.Trim();

这一句实现将输入框中的值传递到数据库中的UserName参数中;

其中Parameters.Add()是 将 System.Data.SqlClient.SqlParameter 及其参数名、数据类型和列宽添加到System.Data.SqlClient.SqlParameterCollection;

Trim()方法是 从当前 System.String 对象移除所有前导空白字符和尾部空白字符。


在删除数据操作中:

int userid = Convert.ToInt32(GridView2.DataKeys[e.RowIndex].Value);     

定义userid是获取该删除行所在的主键值,其中【GridViewDeleteEventArgs 】e.RowIndex的值就是该事件对象所在行的索引值,DataKeys.Valuequ了该行的主键值


在更新操作中:

  string UName = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();

定义UName是将单元格转换成输入框再获取其中的值,获取索引中第2格单元格中的索引值为0的控件,官方对Controls的解释为获取表示一个指定的服务器控件的子控件在 UI 层次结构的 System.Web.UI.ControlCollection 对象。返回 子控件的集合指定的服务器控件的。(不明白Controls[0]在这里所表示的含义,[0]表示的是控件)

(过程中遇到在数据框汇总输入完后,点击更新后并为进行数据的更新,【解决方法】由于页面在点击操作是会对页面进行刷新,没有获取到新的输入值,需要在Page_Load函数中,增加判断语句 if(!IsPostBack)

其中 IsPostBack判断该页是第一次呈现还是为了响应回发而加载,如果是为响应客户端回发而加载该页则为true


在插入操作中:

myCmd.ExecuteNonQuery();

ExcuteNonQuery()是对连接执行 Transact-SQL 语句并返回受影响的行数


以上就是使用ADO.NET进行数据的简单的增删查改操作


                    

ADO.NET基本数据操作(增删改查)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D...

如何使用Ado.net对数据库进行增删改操作

1.准备一个连接字符串 2.以这个连接字符串,创建

关于ADO.NET数据库操作中的增删改查讲解

我们要连接数据库之后就要对它进行增删改查,这里我们就详细的分析一下吧。对于ADO.NET数据库操作Insert,Update,Delete等单向操作,对于插入、删除、修改等操作,由于是客户端应用程序向...
  • letIgo
  • letIgo
  • 2011年10月17日 15:59
  • 1097

初涉三层架构,UI层和DAL层的调用,ADO.NET对数据库的数据增删改

UI层:可以说是界面层吧

使用GridView 空间和ADO.NET实现数据操作

1、GridView实现分页 using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

ADO.NET数据操作常见错误总结

1-数据库服务器无法连接问题凡是出现以上问题时,使用如下方法。1检查SQLServer服务是否打开:2检查连接字符串中的Server对应的服务器名称是否正确(注意默认实例,命名实例的名称)3如果示连接...

C#ADO.NET数据操作汇总

C#ADO.NET操作数据代码汇总 一.用SqlConnection连接SQL Server 1..加入命名空间 using System.Data.SqlClient; 2.连接数据库 S...

Ado.Net操作Excel文件数据常见问题及解决

经常需要在数据库与Execl之间互导数据。net时代,ADO.NET可以使用使用Microsoft.Jet.OleDb访问访问Excel,网上已经有很多类似的资源,最典型也是最简单的可能如下:(asp...

ADO.NET中数据操作浅述

上次我们
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#.Net中ADO.net数据增删查改操作
举报原因:
原因补充:

(最多只允许输入30个字)