.net界面的增删查改

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

二:编写代码

1,添加引用
因为使用的是mysql数据库,所以在连接数据库时需添加引用,在引用中添加mysql.data;
2,界面设计
界面设计可以直接使用vs提供的工具箱直接拖拽即可,其中主要的有两个重要控件,一是GridView,二是SqlDataRource,前者用来绑定显示数据库数据,后者用来连接数据库。[img]http://dl2.iteye.com/upload/attachment/0091/1921/3f805b5c-1c70-37b5-9b12-db5d66c1b83d.jpg[/img]
这是主页面,自己摸索一下不会太难,主要涉及一些布局的问题和控件属性的设置。
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();

}

该方法为查询按钮的监听,点击查询按钮触发该方法。查询得到结果后重新绑定数据
此为查询结果[img]http://dl2.iteye.com/upload/attachment/0091/1923/562952ce-7777-3ae5-aff4-0e92f454dd25.jpg[/img]

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");

}

[img]http://dl2.iteye.com/upload/attachment/0091/1935/7bf8e89c-55cc-3246-9dcf-d37def7d5544.jpg[/img]



//提示框   并跳转到管理页面
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;//添加失败
}
}

[img]http://dl2.iteye.com/upload/attachment/0091/1937/259427f8-6fb1-388e-ab7b-fef12391f3bc.jpg[/img]


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

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

}

[img]http://dl2.iteye.com/upload/attachment/0091/1939/e6c4adc0-049a-3f3f-bf32-73273e2b17f7.jpg[/img]


取消更新数据
//取消更新
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" >
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值