1.数据库操作类代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Security.Cryptography; namespace Data
{
class SqlDesigner
{
private static string connStr = ConfigurationManager.ConnectionStrings["data"].ConnectionString;
/// <summary>
/// 返回受影响的数据行数
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteNoQuery(string sql)
{
using (SqlConnection conn=new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteNonQuery(); }
}
}
/// <summary>
/// 返回一个数据集
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataSet ExecuteDataSet(string sql)
{
using (SqlConnection xonn=new SqlConnection(connStr))
{
xonn.Open();
using (SqlCommand cmd = xonn.CreateCommand())
{
cmd.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset;
}
}
}
public static object ExecuteScalar(string sql)
{
using (SqlConnection conn=new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteScalar();
}
}
}
/// <summary>
/// md5加密
/// </summary>
/// <param name="strPwd"></param>
/// <returns></returns>
public static string GetMD5(string strPwd)
{
string pwd = "";
//实例化一个md5对象
MD5 md5 = MD5.Create();
// 加密后是一个字节类型的数组
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
//翻转生成的MD5码
s.Reverse();
//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
//只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
for (int i = 3; i < s.Length - 1; i++)
{
//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
//进一步对生成的MD5码做一些改造
pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
}
return pwd;
} }
}

  2.程序代码 :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace Data
{
public partial class Form1 : Form
{ public Form1()
{
InitializeComponent();
} DataSet ds = new DataSet();
DataTable dt = new DataTable(); private void TextBoxNull()
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
}
private void 用户ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextBoxNull();
ds = SqlDesigner.ExecuteDataSet("select * from dtuser");
dt = ds.Tables[];
dataGridView1.DataSource = dt;
labelshow();
} private void 角色ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextBoxNull();
ds = SqlDesigner.ExecuteDataSet("select *from dtrole");
dt = ds.Tables[];
dataGridView1.DataSource = dt;
label4.Text = "None";
textBox4.Text = "None";
labelshow();
} private void 对象ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextBoxNull();
ds = SqlDesigner.ExecuteDataSet("select * from dtfunction");
dt = ds.Tables[];
dataGridView1.DataSource = dt;
labelshow();
} private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextBoxNull();
ds = SqlDesigner.ExecuteDataSet("select * from help");
dt = ds.Tables[];
dataGridView1.DataSource = dt;
dataGridView1.Columns[].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
}
//双击dataGridView1
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
string index = dataGridView1.CurrentRow.Cells[].Value.ToString();
if (label1.Text == "uid")
{
ds = SqlDesigner.ExecuteDataSet("select *from dtuser where uid='" + index + "'");
dt = ds.Tables[];
DataRow row = dt.Rows[];
textBox1.Text = row["uid"].ToString();
textBox2.Text = row["uname"].ToString();
textBox3.Text = row["pwd"].ToString();
textBox4.Text = row["uflag"].ToString();
}
if (label1.Text == "rid")
{
ds = SqlDesigner.ExecuteDataSet("select *from dtrole where rid='" + index + "'");
dt = ds.Tables[];
DataRow row = dt.Rows[];
textBox1.Text = row["rid"].ToString();
textBox2.Text = row["rname"].ToString();
textBox3.Text = row["flag"].ToString();
textBox4.Text = "None";
}
if (label1.Text == "fid")
{
ds = SqlDesigner.ExecuteDataSet("select *from dtfunction where fid='" + index + "'");
dt = ds.Tables[];
DataRow row = dt.Rows[];
textBox1.Text = row["fid"].ToString();
textBox2.Text = row["fname"].ToString();
textBox3.Text = row["flag"].ToString();
textBox4.Text = row["uflag"].ToString();
}
}
private void labelshow()
{
label1.Text = dataGridView1.Columns[].HeaderText;
label2.Text = dataGridView1.Columns[].HeaderText;
label3.Text = dataGridView1.Columns[].HeaderText;
try
{
label4.Text = dataGridView1.Columns[].HeaderText;
}
catch (Exception)
{ label4.Text = "None";
}
}
private void btn_add_Click(object sender, EventArgs e)
{
int i = ;
if (label1.Text=="uid")
{
string str = SqlDesigner.GetMD5(textBox3.Text.Trim());
i = SqlDesigner.ExecuteNoQuery("insert into dtuser(uid,uname,pwd,uflag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + str + "','" + textBox4.Text + "')");
}
else if (label1.Text == "rid")
{
i = SqlDesigner.ExecuteNoQuery("insert into dtrole(rid,rname,flag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')");
}
else
{
try
{
i = SqlDesigner.ExecuteNoQuery("insert into dtfunction(fid,rid,uid,uflag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')");
}
catch (Exception)
{
MessageBox.Show("添加失败");
} } if (i > )
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("添加失败");
}
} private void btn_del_Click(object sender, EventArgs e)
{
int i = ;
string currentIndex = dataGridView1.CurrentRow.Cells[].Value.ToString();
if (label1.Text=="uid")
{
i = SqlDesigner.ExecuteNoQuery("delete from dtuser where uid='" + currentIndex + "'");
}
else if (label1.Text=="fid")
{
i = SqlDesigner.ExecuteNoQuery("delete from dtfunction where fid='" + currentIndex + "'");
}
else
{
i = SqlDesigner.ExecuteNoQuery("delete from dtrole where rid='" + currentIndex + "'");
}
if (i > )
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("删除失败");
}
} private void btn_update_Click(object sender, EventArgs e)
{
int i = ;
if (label1.Text == "rid")
{
i = SqlDesigner.ExecuteNoQuery("update dtrole set rname='" + textBox2.Text + "',flag='" + textBox3.Text + "'where rid='" + textBox1.Text + "'");
}
if (label1.Text == "uid")
{
i = SqlDesigner.ExecuteNoQuery("update dtuser set uname='" + textBox2.Text + "',pwd='" + textBox3.Text + "',uflag='" + textBox4.Text + "'where uid='" + textBox1.Text + "'");
}
if (label1.Text=="fid")
{
i = SqlDesigner.ExecuteNoQuery("update dtfunction set rid='" + textBox2.Text + "',uid='" + textBox3.Text + "',uflag='" + textBox4.Text + "'where fid='" + textBox1.Text + "'");
}
if (i > )
{
MessageBox.Show("Succeed!");
}
else
{
MessageBox.Show("Failed!");
}
} }
} View All Code

c#基础在winform操作数据库,实现增删改查的更多相关文章

  1. Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  2. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  3. python测试开发django-13.操作数据库(增删改查)

    前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...

  4. 9.5Django操作数据库的增删改查

    2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...

  5. Django基础学习四_数据库的增删改查

    今天主要学习两个东西 1.如何对数据库做增删改查 2.如果将数据库中的数据用html的方式返回到前台 一.对数据库中增删改查操作 1.首先需要先见表,见表的方法我们在“http://www.cnblo ...

  6. Java操作数据库实现"增删改查"

    本文主要讲解JDBC操作数据库    主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一   DriverManager类 DriverManage类 ...

  7. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  8. c#操作数据库的增删改查语句及DataGridView简单使用

    下面是要用户名和密码连接数据库的操作: 一.定义连接字符串,用来链接SQL Server string str_con = "server=.(服务器名称一般为 . );database=W ...

  9. C#通过窗体应用程序操作数据库(增删改查)

    为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...

  10. datagridview数据绑定操作数据库实现增删改查

    DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBui ...

随机推荐

  1. 用struts2 s2-045漏洞拿站记录

    浏览FreeBuf时发现的文章,新出的漏洞: http://www.freebuf.com/vuls/128668.html 漏洞一出,各位大神早就写出POC: http://www.reg008.c ...

  2. Dubbo服务容错

    当一个服务调用另一个远程服务出现错误时的外观 Dubbo提供了多种容错方案,默认值为failover(重试) 1).Failover Cluster(默认) 失败自动切换,当出现失败,重试其他服务器, ...

  3. LogParse-Windows系统日志分析

    Windows系统日志分析 一.前言 本文将对常见的日志类型,利用微软日志分析工具(LogParser)结合已经掌握的恶意代码分析Windows系统日志,关联出系统的异常. 数据来源于Windows的 ...

  4. 根据txt中的文件名将文件复制到目标文件夹中

    功能如标题,之所以这么做是有的时候文件数目较多,一个一个复制太复杂了,代码如下: # -*- coding:utf-8 -*- #2018_03_18 #实现功能:根据文件名字将对应的文件复制到目标地 ...

  5. python httplib和urllib的性能比较

    httplib代码: urlParseResult = urlparse(url) host = urlParseResult.hostname path = urlParseResult.path ...

  6. Python-html css 盒模型

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>ht ...

  7. PYTHON-面向对象 类 绑定方法

    面向对象三大特性(*****) 1继承 1. 什么是继承 继承是一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类/基类/超类 继承与现实生活中的继承一个意思 (例如 小明继承小明他爹 ...

  8. AS 中 Plugin for Gradle 和 Gradle 之间的版本对应关系

    Plugin for Gradle 和 Gradle 之间的版本对应关系 来源:https://developer.android.com/studio/releases/gradle-plugin. ...

  9. java比较两个对象是否相等?

    1.判断两个对象是否是同一个引用对象则用==,"=="比的是地址.因为如果地址相同,则就是同一个对象(java中如果两对象(obj1,obj2)相等,那么在修改obj2的时候,ob ...

  10. 来自工程师的8项Web性能提升建议

    在互联网盛行的今天,越来越多的在线用户希望得到安全可靠并且快速的访问体验.针对Web网页过于膨胀以及第三脚本蚕食流量等问题,Radware向网站运营人员提出以下改进建议,帮助他们为用户提供最快最优质的 ...