`
在下个路口
  • 浏览: 109817 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

.net界面的增删查改

 
阅读更多

         初始.net,实现简单的界面增删查改功能。
   一:开发环境
         编程软件是VS2012,利用C#语言,运用.net控件GradView自带的增删查改功能。因为在这里一些控件是由微软提供的,里面的一些方法已经封装好了,直接用控件就可以使用。数据库连接的是mysql。相较sql server而言,mysql需要自己编写代码,给自己带来了一定的困难,不过在完成这些之后,通过自己编写代码,收获的东西自然也是不对等的。

   二:编写代码
       
     1,添加引用
        因为使用的是mysql数据库,所以在连接数据库时需添加引用,在引用中添加mysql.data;
     2,界面设计
        界面设计可以直接使用vs提供的工具箱直接拖拽即可,其中主要的有两个重要控件,一是GridView,二是SqlDataRource,前者用来绑定显示数据库数据,后者用来连接数据库。
这是主页面,自己摸索一下不会太难,主要涉及一些布局的问题和控件属性的设置。
     3,数据库连接
      
     
 public void ConectDB()
        {
 string connStr = "Database=student_message;Data Source=localhost;User Id=root;Password=yidingyue;Charset=utf8;";
            mySqlConn = new MySqlConnection(connStr);
            mySqlConn.Open();
        }

     4,数据库数据控件绑定  
    
 public void bind() 
        {
            string sql = "select * from student_message";
            MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, mySqlConn);
            DataSet dataset = new DataSet();
            // 填充DataSet对象
            DataAdapter.Fill(dataset, "student_message");
            GridView1.DataSource = dataset;
            GridView1.DataKeyNames = new string[] { "s_no", "name" };
            GridView1.DataBind();
        }    


    三:数据的操作
        因为使用的是mysql数据库,那么自然sql语句是必不可少的,在此我们将sql语句和c#代码结合起来,实现数据库和界面数据的同步操作。
       1,查询数据
       
       
protected void Button1_Click(object sender, EventArgs e)
        {
            //s_no需和数据库中的类型保持一致
            String select = "select *from student_message where s_no="+s_no;
            Console.WriteLine(select);
            
            MySqlDataAdapter DataAdapter = new MySqlDataAdapter(select, mySqlConn);
            DataSet dataset = new DataSet();
            // 填充DataSet对象
            DataAdapter.Fill(dataset, "student_message");
            GridView1.DataSource = dataset;
            GridView1.DataKeyNames = new string[] { "s_no", "name" };
            GridView1.DataBind();
             
        } 

      该方法为查询按钮的监听,点击查询按钮触发该方法。查询得到结果后重新绑定数据
     此为查询结果

     2,删除数据
       
 //删除         //GridViewDeleteEventArgs不能写成GridViewDeletedEventArgs,否则重载与委托不匹配
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)       
        {
String sql = "delete from student_message where s_no=" + Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
            mySqlCmd = new MySqlCommand(sql, mySqlConn);
            mySqlCmd.ExecuteNonQuery();
            bind();
        }

   点击gridview控件后的删除操作执行。
 
     3,增加数据
         点击添加信息,跳到另外一页面执行增加操作。
         页面跳转方法
     
 protected void Button2_Click(object sender, EventArgs e)
        {
            Add_data.MsgBox("您需要添加一条信息吗?","Add_data.aspx");
            
        }




  
       
//提示框   并跳转到管理页面
        public static void MsgBox(string strMsg, string URL)
        {
            string StrScript;
            StrScript = ("<script language=javascript>");
            StrScript += ("alert('" + strMsg + "');");
            StrScript += ("window.location='" + URL + "';");
            StrScript += ("</script>");
            System.Web.HttpContext.Current.Response.Write(StrScript);
        }

      增加数据方法
       
//添加数据
        private bool AddData()
        {
           String str1 = TextBox1.Text;
          
           String str2 = TextBox2.Text;
           String str3 = TextBox3.Text;
           String str4 = TextBox4.Text;

           String str5 = TextBox5.Text;
           String str6 = TextBox6.Text;

string SqlStr = "insert into student_message(s_no,name,sex,age,dept,time)"+ "values("+str1+",'"+str2+"','"+str3+"',"+
                str4+",'"+str5+"','"+str6+"')";
            Console.WriteLine(SqlStr);
            MySqlCommand mySqlCmd = new MySqlCommand(SqlStr, mySqlConn);
            mySqlCmd.ExecuteNonQuery();//将数据提交给数据库操作自定义方法ExecuteNonQuery执行添加,并返回影响行数
            if (str1!=null&&str2!=null&&str3!=null&&str4!=null&&str5!=null&&str6!=null)
            {
                return true;//添加成功
            }
            else
            {
                //MsgBox("添加失败,请检查是否填写完整或是否填写正确,其中学号和年龄为一数字,其它需为字符型","Add_data.aspx");
                return false;//添加失败
            }
        }





          此处需特别注意的是sql语句的正确书写,注意数据库表字段的类型和语句的标点符号。
        4,更新数据
        更新数据是几种操作中最难的。
        点击编辑,让点击的该行高亮显示。
//编辑
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {

            GridView1.EditIndex = e.NewEditIndex;
            //当前编辑行背景色高亮
            this.GridView1.EditRowStyle.BackColor = System.Drawing.Color.FromName("#F7CE90");

        }




      取消更新数据
//取消更新
 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            this.GridView1.EditIndex = -1;//浏览状态的还原
            bind();
        }

     确认更新数据
 
//更新
 protected void GridView1_RowUpdating(object sender,GridViewUpdateEventArgs e)
        {
string strCus = this.GridView1.DataKeys[e.RowIndex][0].ToString();
string s_no = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString();
string name = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString();
string sex = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString();
string age = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString();
string dept = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString();
string time = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString();
String sql = "update student_message set s_no=" + s_no + ",
name='" + name
   + "',sex='" + sex + "',age=" + age + ",dept='" + dept + "' ,time='" + time + "' where s_no=" + strCus;
            mySqlCmd = new MySqlCommand(sql, mySqlConn);
            mySqlCmd.ExecuteNonQuery();
            bind();
            e.Cancel= true;

        }

   到这里就已经简单的完成了数据的增删查改了,但是里面当然也有很多需要注意的地方。以下就介绍几处需要特别注意的地方。
       1,添加引用,在头部也需添加。
using MySql.Data.MySqlClient;
using System.Data;

     2,连接数据库时处理中文乱码问题,在连接数据库字符串中添加charset=utf8;
string connStr = "Database=student_message;Data Source=localhost;User Id=root;Password=yidingyue;Charset=utf8;";
      3,修改数据之后更新时,需在page_load方法中添加一个判断,否则重新绑定的还会是原来的数据,即更新数据无效果。
if(!IsPostBack)
            {
                bind();
            }

       4,gridview控件操作字段的类型需为CommandField。如:
           
<asp:CommandField HeaderText="修改" ShowEditButton="true" CancelText="更新" UpdateText="取消" />
            <asp:CommandField HeaderText="删除" ShowDeleteButton="true"/>
  此为前台代码。
        5,Gridview方法代码在前台和后台都需声明,并且保持一致,后台声明即为操作方法代码,后台声明如下:
  
<asp:GridView ID="GridView1" runat="server" Width="827px"  AutoGenerateColumns="False"  CellPadding="4" BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"
         OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowEditing="GridView1_RowEditing"
         OnRowCancelingEdit="GridView1_RowCancelingEdit"  OnRowUpdating="GridView1_RowUpdating"
         OnRowDeleting="GridView1_RowDeleting" >
  • 大小: 95.4 KB
  • 大小: 22.9 KB
  • 大小: 9.5 KB
  • 大小: 11.5 KB
  • 大小: 27.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics