【c#】更新记新手小白第一次编程-简单数据库调用-第三个程序-附源码可改
本帖最后由 新手小白学编程 于 2019-3-3 20:30 编辑开发目的(更新){:301_997:}
毕业好久了突然一个老同学打电话说要帮忙写一个毕业论文的程序需要代码,俗话说拿人手短吃人嘴短,不写不行啊!
但是离开学校好久了东西也忘得差不多了,现在的状态就如名字一样新手小白,只能慢慢去看点教程写个大概框架。
破解的话慢慢学,最起码先把编程学了,有了编程基础那才能好好学习破解不是。
大神勿扰,勿喷,适合小白学习基础编程。
更新原因:被同学投诉使用SQL数据库的话在有的电脑上无法运行,好吧我知道他懒,但是我不能懒啊,动动手改成ACCSE数据库的吧,只要你的电脑安装了office就能使用,不多说了直接在第三个软件里面贴程序界面与源码,另外有关大佬说的绑定字段的问题暂时还是没学会希望大佬给点源码让我分析下!{:301_973:}、
开发软件(需要软件均可从网上自行下载)
1. vs2015 (编程软件,封包软件)
2.数据库(accse数据库windows自带。或是SQL2014数据库)
免责声明:本程序为一次性实验程序,附件有源码跟程序。
查毒衔接:哈勃分析
https://habo.qq.com/file/showdetail?md5=a876de9bfdd3cc2ba88765c3c2a83c52&pk=ADQGb11kB2EIPls1U2s%3D
程序名:遗失物品查询1.exe
MD5:
a876de9bfdd3cc2ba88765c3c2a83c52
程序界面
{:301_984:} 第一套程序:调用SQL数据库(简单登陆程序制作)
1.登陆界面制作
2.登陆后界面
3.修改密码界面
4.添加用户界面
5.数据库界面展示
程序代码
1.登录按钮设计
//登陆按钮设置
private void button1_Click(object sender, EventArgs e)
{
//判断登陆账号与密码是否正确
Class1.a = textBox1.Text;
string b = textBox2.Text;
string c = comboBox1.Text;
if (Class1.a=="")
{
MessageBox.Show("请输入账号", "错误");
return;
}
else if(b=="")
{
MessageBox.Show("请输入密码", "错误");
return;
}
//连接数据库 SQL Server 连接
//string constr = "Server=.;integrated security=SSPI;Initial Catalog=历史";
//使用登录名打开关闭数据库
string constr = "Server=.;user=sa;pwd=944725;database=数据表";
SqlConnection sjk = new SqlConnection(constr);
sjk.Open();
//MessageBox.Show(Class1.a );
string sj = "select 密码 from 数据表 where 员工编号="+ Class1.a;
SqlCommand myCom = new SqlCommand(sj, sjk);
string t;//密码
t = (string)myCom.ExecuteScalar();
string gl = "select 管理员类别 from 数据表 where 员工编号=" + Class1.a;
SqlCommand mygl = new SqlCommand(gl, sjk);
Class1.c= (string)mygl.ExecuteScalar();
// MessageBox.Show(Class1.c);
//判断密码是否正确
if (t == b)
{
if (Class1.c==c)
{
//关闭登陆界面打开程序界面
sjk.Close();
this.Hide();
Form2 F2 = new Form2();
F2.ShowDialog();
this.Close();
return;
}
MessageBox.Show("请输入正确用户类型!", "错误");
return;
}
else
{
MessageBox.Show("请输入正确账号或是密码!", "错误");
sjk.Close();
return;
}
}
2.修改密码按钮
private void button2_Click(object sender, EventArgs e)
{
//进行窗口间呼出与关闭呼出修改密码界面
this.Hide();
Form3 F3 = new Form3();
F3.ShowDialog();
}
3.修改密码程序设计
private void button1_Click(object sender, EventArgs e)
{
//连接数据库 SQL Server 连接
//string constr = "Server=ip地址.;integrated security=SSPI;Initial Catalog=历史";
//使用登录名打开关闭数据库
string constr = "Server=.;user=sa;pwd=密码;database=数据表";
SqlConnection sjk = new SqlConnection(constr);
sjk.Open();
//MessageBox.Show(Class1.a );
string sj = "select 密码 from 数据表 where 员工编号=" + Class1.a;
SqlCommand myCom = new SqlCommand(sj, sjk);
string t;//管理员类别
t = (string)myCom.ExecuteScalar();
string a = textBox1.Text;
string b = textBox2.Text;
string c = textBox3.Text;
if(b==c)
{
if(a==t)
{
string gm = "update 数据表 set 密码="+b+"where 员工编号=" + Class1.a;
SqlCommand mygm = new SqlCommand(gm, sjk);
mygm.ExecuteNonQuery();
sjk.Close();
MessageBox.Show("修改成功!", "正确");
//进行窗口间呼出与关闭
this.Hide();
Form2 F2 = new Form2();
F2.ShowDialog();
this.Close();
return;
}
MessageBox.Show("请输入正确的密码", "错误");
}
MessageBox.Show("前后两次密码不一致请重新输入", "错误");
}
4.添加用户程序设计
private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
string b = textBox2.Text;
string c = textBox3.Text;
string d = textBox4.Text;
string j = textBox5.Text;
string f = textBox6.Text;
string g = textBox7.Text;
string h = textBox8.Text;
//使用登录名打开关闭数据库
string constr = "Server=.;user=sa;pwd=944725;database=数据表";
SqlConnection sjk = new SqlConnection(constr);
sjk.Open();
string gm = "insert 数据表(员工编号,员工姓名,员工性别,所在部门,所需工种,工种编号,上班天数,加班天数,考勤天数,缺勤天数,考勤时间,密码,管理员类别)values("+a+",'"+b + "','" + c + "','" + d + "','" + j + "','" + f + "',' ','', ' ','', ' ','" + h + "','" + g+"')";
SqlCommand mygm = new SqlCommand(gm, sjk);
mygm.ExecuteNonQuery();
MessageBox.Show("插入成功", "完成");
sjk.Close();
////进行窗口间呼出与关闭
this.Hide();
Form2 F2 = new Form2();
F2.ShowDialog();
this.Close();
}
{:301_978:}
第二套程序:调用ACCSE数据库(简单登陆程序制作)
1.界面制作
2.程序设计
1.检测数据库是否存在
//取当前文件运行目录
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;
// textBox1.Text = lujing + "收录名录.accdb"; //测试文件运行目录是否正确
//查询当前运行目录下是否存在我们的数据库文件,如果存在则继续运行并发出提示,否则弹出错误运行框。
if (File.Exists(lujing + "收录名录.mdb"))
{
MessageBox.Show("数据库已导入可放心使用");
}
else
{
MessageBox.Show("文件夹" + lujing + "收录名录.mdb 这个文件,程序无法进行查询", "错误");
}
2.查询设计
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "收录名录.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接
读取单独的字段信息
OleDbCommand sqlcmd = new OleDbCommand("select * from shuju where 物品名 = '" + textBox1.Text + "'", dbconn);//查询语句名令
OleDbDataReader reader = sqlcmd.ExecuteReader();//执行查询语句
if (reader.Read())
{
string zt = (string)reader["状态"];//取得字段的值
MessageBox.Show(""+zt);
reader.Close();
dbconn.Close();
return;
} //读取单独的字段信息
//读取多个字段填充入表格中
OleDbDataAdapter inst = new OleDbDataAdapter("select * from shuju where 物品名 = '" + textBox1.Text + "'", dbconn);//选择需要查询的内容
DataSet ds = new DataSet();
inst.Fill(ds);//用inst填充ds
if (ds.Tables.Count == 1 && ds.Tables.Rows.Count == 0)
{
MessageBox.Show("查无此数据!请确认后再来", "错误!");
dbconn.Close();//关闭连接
return;
}
else
{
dataGridView1.DataSource = ds.Tables;//展示ds第一张表到dataGridView1控件
dbconn.Close();//关闭连接
MessageBox.Show("查询成功");
}
3.添加程序设计
string wp = textBox1.Text;
string sj = DateTime.Now.ToString("yyyy-MM-dd");//取当前运行时间
string zt = "收录";
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "收录名录.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接
string Insert = "insert into shuju(物品名,状态,提取状态) values('" + wp + "','" + zt + "','" + sj + "')";
OleDbCommand myCommand = new OleDbCommand(Insert, dbconn);//执行命令
int sy = myCommand.ExecuteNonQuery(); //更新数据库,返回受影响行数;可通过判断其是否>0来判断操作是否成功;
if (sy > 0)
{
MessageBox.Show("添加成功!");
dbconn.Close();
}
else
{
MessageBox.Show("添加失败!");
dbconn.Close();
}
4.删除程序设计
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "收录名录.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接
string Delete = "delete from shuju where 物品名 = '" + textBox1.Text + "'"; //删除命令
OleDbCommand myCommand = new OleDbCommand(Delete, dbconn);//执行命令
int sy = myCommand.ExecuteNonQuery();//更新数据库,返回受影响行数;可通过判断其是否>0来判断操作是否成功
//判断是删除否成功
if (sy > 0)
{
MessageBox.Show("删除成功!");
dbconn.Close();
}
else
{
MessageBox.Show("删除失败!");
dbconn.Close();
}
5.修改程序设置
string wp = textBox1.Text;
string sj = DateTime.Now.ToString("yyyy-MM-dd");
string str = Interaction.InputBox("请输入物品状态", "修改", "", -1, -1);//弹出输入框
string zt = str;
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "收录名录.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接
string Update = "update shuju set 状态='" + zt + "'where 物品名 = '" + wp + "'";
string Update1 = "update shuju set 提取状态='" + sj + "'where 物品名 = '" + wp + "'";
//update 表名 set 字段名='字段值' where 字段值='字段值';上一行代码执行后将所有studentName中的s替换为x
OleDbCommand myCommand = new OleDbCommand(Update, dbconn);//执行命令
OleDbCommand myCommand1 = new OleDbCommand(Update1, dbconn);
int sy1 = myCommand.ExecuteNonQuery();
int sy = myCommand.ExecuteNonQuery();
if (sy + sy1 > 0)
{
MessageBox.Show("修改成功!");
dbconn.Close();
}
else
{
MessageBox.Show("修改失败!");
dbconn.Close();
}
6.数据库重置方式
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "收录名录.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接
string qk = "ALTERTABLEshujuALTERCOLUMN序号COUNTER(1,1) ";
OleDbCommand myCommand = new OleDbCommand(qk, dbconn);
int sy = myCommand.ExecuteNonQuery();
if (sy > 0)
{
MessageBox.Show("清空完成!");
dbconn.Close();
}
else
{
MessageBox.Show("清空失败!");
dbconn.Close();
}
{:301_978:}
第三个程序
1.程序界面:(老规矩本来就是新手还是越简单越好如果学到新的我会继续更新的)
(1)登陆界面:相比于第一个程序而言登陆界面更加的简单但是涉及的内容一样也不会少可能还会有所增加
(2)程序主界面(减少不必要的界面,使用数据表的导入功能是整体数据更加直观
2.不多说了上程序
(1)登陆界面简洁的基础上增加自动验证账号权限问题,自动检查数据库是否存在
private void button2_Click(object sender, EventArgs e)
{
Application.Exit(); //关闭程序
}
private void button1_Click(object sender, EventArgs e)
{
//按钮单击后判断帐号密码是否为空,数据库是否存在
Class1.a = textBox1.Text;
string b = textBox2.Text;
if(Class1.a=="")
{
MessageBox.Show("请输入帐号!","错误");
}
else if(b=="")
{
MessageBox.Show("请输入密码!", "错误");
}
//判断数据库是否已放入运行目录
String lujing= System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
if (File.Exists(lujing + "yz.mdb"))
{
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "yz.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接
OleDbCommand inst = new OleDbCommand("select * from sjk where bh = " + Class1.a , dbconn);//选择需要查询的内容
OleDbDataReader reader = inst.ExecuteReader();//执行查询方案
if (reader.Read())
{
string zt = (string)reader["mm"];//取得字段的值
string qx = (string)reader["zw"];//取得字段
string xm = (string)reader["xm"];//取得字段
Class1.b = qx;//将权限赋值给全局变量b
Class1.c = xm;
Class1.d = zt;
if (zt==b)//判断密码是否正确
{
dbconn.Close();
this.Hide();
Form2 F2 = new Form2();
F2.ShowDialog();
this.Close();
reader.Close();
}
else
{
MessageBox.Show("请输入正确的密码!");//如果查询不到密码则会输出需要你添加争取的密码
}
}
else
{
MessageBox.Show("请输入正确的帐号密码!");
}
}
else
{
MessageBox.Show("文件夹" + lujing + "yz.mdb 这个文件,如无此文件无法登录,程序无法进行登录", "错误");
}
}
}
(1)主程序界面简单而不失内涵,同时多个界面的使用划归为一个
1)确认考勤按钮:原理根据账号或是姓名在当天的基础上判断今天是否已经打了考勤,剔除了考勤时间选项,剔除考勤是否存在迟到问题,进行简化
private void button4_Click(object sender, EventArgs e)
{
if (textBox4.Text == "未打考勤")//判断当天是否打卡
{
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "kq.mdb"; //连接数据库
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接并打开
//打卡命令
string Insert = "insert into zh(bh,xm,kqzt,kqsj) values('" + Class1.a + "','" + Class1.c + "','已打考勤', '" + Class1.t + "')";
OleDbCommand myCommand = new OleDbCommand(Insert, dbconn);//执行命令
int sy = myCommand.ExecuteNonQuery();
if (sy > 0)
{
MessageBox.Show("打卡成功!");
textBox4.Text = " 已打考勤";
label5.Text = "打卡成功";//显示当前状态
dbconn.Close();
}
else
{
MessageBox.Show("打卡失败!");
dbconn.Close();
}
}
else
{
MessageBox.Show("今天已打考勤请勿重复打卡");
}
}
2)浏览详情按钮:原理先是判断人员权限再进行查询数据归为一个数据集进行填充,但是涉及到大佬所提的字段绑定问题有点不懂需要大佬们解决
private void button9_Click(object sender, EventArgs e)
{
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "kq.mdb"; //连接数据库
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接并打开
//员工权限设置仅能查看今天的考勤
if (Class1.b == "员工")
{
OleDbDataAdapter inst = new OleDbDataAdapter("select * from zh where xm = '" + Class1.c + "' and kqsj='" + Class1.t + "'", dbconn);//选择需要查询的内容
DataSet ds = new DataSet();
inst.Fill(ds);//用inst填充ds
//判断是否存在考勤
if (ds.Tables.Count == 1 && ds.Tables.Rows.Count == 0)
{
MessageBox.Show("查无此数据!请确认后再来", "错误!");
dbconn.Close();//关闭连接
return;
}
else
{
dataGridView1.DataSource = ds.Tables;//展示ds第一张表到dataGridView1控件
dbconn.Close();//关闭连接
label5.Text = "考勤数据已导入";
MessageBox.Show("查询成功");
}
}
else
{
//负责人或是管理员帐号权限,可以查看历史考勤
OleDbDataAdapter inst = new OleDbDataAdapter("select * from zh where bh = '" + Class1.a +"'", dbconn);//选择需要查询的内容
DataSet ds = new DataSet();
inst.Fill(ds);//用inst填充ds
//判断是否存在考勤
if (ds.Tables.Count == 1 && ds.Tables.Rows.Count == 0)
{
MessageBox.Show("查无此数据!请确认后再来", "错误!");
dbconn.Close();//关闭连接
return;
}
else
{
dataGridView1.DataSource = ds.Tables;//展示ds第一张表到dataGridView1控件
dbconn.Close();//关闭连接
label5.Text = "考勤数据已导入";
MessageBox.Show("查询成功");
}
}
}
3)查询按钮:原理老规矩先判断权限再分别从两个数据库内提取不同的数据进行填入
private void button3_Click(object sender, EventArgs e)
{
string cx = textBox1.Text;
if(cx=="")
{
MessageBox.Show("请输入需要查询的对象!");
return;
}
else
{
String lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "yz.mdb";
using (OleDbConnection dbconn = new OleDbConnection(Con)) //创建数据库对象
{
dbconn.Open();//建立连接
OleDbCommand inst1 = new OleDbCommand("select * from sjk where xm ='" + cx +"'", dbconn);//选择需要查询的内容
OleDbDataReader reader = inst1.ExecuteReader();//执行查询方案
if (reader.Read())
{
string bh = Convert.ToString(reader["bh"]);//取得字段的值
string mm = Convert.ToString(reader["mm"]);//取得字段
string zw = (string)reader["zw"];//取得字段
textBox2.Text = bh;
textBox6.Text = bh;
textBox3.Text = cx;
textBox7.Text = cx;
textBox10.Text = mm;
Class1.b = zw;//将权限赋值给全局变量b
Class1.c = cx;
Class1.d =""+ mm;
dbconn.Close();
reader.Close();
}
else
{
MessageBox.Show("查无此人请重新确定查询人员姓名!");
return;
}
}
string Con1 = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "kq.mdb"; //连接数据库
OleDbConnection dbconn1;
using ( dbconn1 = new OleDbConnection(Con1))//创建数据库对象
{
dbconn1.Open();//建立连接并打开
OleDbDataAdapter inst = new OleDbDataAdapter("select * from zh where xm = '" + cx + "' and kqsj='" + Class1.t + "'", dbconn1);//选择需要查询的内容
DataSet ds = new DataSet();
inst.Fill(ds,"kqzt");
//dataGridView1.DataSource = ds.Tables;
textBox4.Text= ds.Tables.Rows.ToString();//单独去某个字段的值
textBox5.Text = Class1.t;
label5.Text = "查询成功";
}
}
}
4)用户界面按钮的设置:原理第一条进行权限查询并判别权限
第二条对按钮计次来减少新的页面的使用第一次解开输入权限,第二次进行数据添加
1.添加人员权限识别
private void button6_Click(object sender, EventArgs e)
{
if(Class1.b=="员工")
{
MessageBox.Show("您无添加人员权限请提高权限后重试");
return;
}
else
{
count = count + 1;
if (count == 1)
{
textBox6.ReadOnly = false;
textBox7.ReadOnly = false;
textBox8.ReadOnly = false;
textBox10.ReadOnly = false;
MessageBox.Show("文本框已解锁可以在输入框添加新的人员信息");
}
else
{
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "yz.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接并打开
//判断编号与姓名是否重复
string cf = "select * from sjk where bh = '" + textBox6.Text + "' or xm='" + textBox7.Text + "'";
OleDbCommand mycf = new OleDbCommand(cf, dbconn);//执行查找命令
int sy1 = mycf.ExecuteNonQuery();
if (sy1 > 0)
{
MessageBox.Show("员工编号或是员工姓名重复请核对后再试");
}
else
{
//添加命令程序
string Insert = "insert into sjk(bh,xm,zw,mm) values('" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + textBox10.Text + "')";
OleDbCommand myCommand = new OleDbCommand(Insert, dbconn);//执行添加命令
int sy = myCommand.ExecuteNonQuery();
if (sy > 0)
{
MessageBox.Show("添加成功!");
textBox6.ReadOnly = true;
textBox7.ReadOnly = true;
textBox8.ReadOnly = true;
textBox10.ReadOnly = true;
dbconn.Close();
count = 0;
label5.Text = "添加成功";
}
else
{
MessageBox.Show("添加失败!");
dbconn.Close();
}
}
}
}
}
5)删除
private void button7_Click(object sender, EventArgs e)
{
if (Class1.b == "员工")
{
MessageBox.Show("您无对应权限请修改后再来");
}
else
{
string lujing = System.Threading.Thread.GetDomain().BaseDirectory;//取当前文件运行目录
//连接数据库
string Con = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + lujing + "yz.mdb";
OleDbConnection dbconn = new OleDbConnection(Con); //创建数据库对象
dbconn.Open();//建立连接并打开
string Delete = "delete from sjk where bh = '" + textBox6.Text + "'"; //删除命令
OleDbCommand myCommand = new OleDbCommand(Delete, dbconn);//执行命令
int sy = myCommand.ExecuteNonQuery();
if (sy > 0)
{
MessageBox.Show("删除成功!");
dbconn.Close();
label5.Text = "删除成功";
}
else
{
MessageBox.Show("删除失败!");
dbconn.Close();
}
}
}
{:301_974:}{:301_1000:}下载衔接:
链接:https://pan.baidu.com/s/1MD-Nfg-qWO64koXcYR2E1Q
提取码:yaai 支持一下,但是数据库列名尽量不要用中文{:1_921:} 第一次写,主要时为了在表格中显示的,英文的显示的时候造成别人看不懂,就直接拿中文来写了。 表格可以设置表头绑定字段的,还有SQL可以用别名。学习精神值得赞扬! 大师源码能否重新发一次,新手想学习一下数据库的增删改查!谢谢。或者邮箱:3512747@qq.com 3512747 发表于 2019-12-13 12:31
大师源码能否重新发一次,新手想学习一下数据库的增删改查!谢谢。或者邮箱:
源码一直都在你自己直接复制粘贴就行了,不存在失效的,要不就是腾讯封了接口,一般的老微信可以任性使用,新微信没办法 百度云过期了,麻烦再发一遍 链接失效了,能否重新分享一下 连接可以再发一下吗
页:
[1]