.net界面的增删查改

2024-05-25 20:08
文章标签 界面 net 增删 查改

本文主要是介绍.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" >

这篇关于.net界面的增删查改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1002503

相关文章

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

.NET利用C#字节流动态操作Excel文件

《.NET利用C#字节流动态操作Excel文件》在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据,本文将演示如何在.NET平台使用C#通过字节流创建,读取,编辑及保... 目录用C#创建并保存Excel工作簿为字节流用C#通过字节流直接读取Excel文件数据用C#通过字节

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

08 增删查功能

划重点: lable 标签keyup:键盘事件标签内添加样式:style使用事件修饰符:preventforEach :遍历 数组indexOf: 可以返回要查询的某个字符串值在整个字符串中首次出现的位置下标findIndex:返回传入一个测试条件(函数)符合条件数组的首个元素的位置splice:向/从数组中添加/删除项目,然后返回被删除后的新的项目数组 黑椒蟹 一对: <!DOCTYPE

centOS7.0设置默认进入字符界面

刚装的,带有x window桌面,每次都是进的桌面,想改成自动进命令行的。记得以前是修改 /etc/inittab 但是这个版本inittab里的内容不一样了没有id:x:initdefault这一行而且我手动加上也不管用,这个centos 7下 /etc/inittab 的内容 Targets systemd uses targets which serve a simil