调试一个C#研究生管理信息系统源码

190 篇文章 6 订阅
26 篇文章 0 订阅

源码来自

http://www.veryhuo.com/down/html/35724.html


首先用SharpDevelop 5.1打开该工程,出现下图错误;该项目是早期.net 2003生成;SharpDevelop 5.1无法打开;



下图是.sln文件,修改第一行的8.00为10.00;再打开项目;


打开出错;



下面用VS2010学习版打开,转换项目后,打开了;

运行,出现下图错误;未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序;



错误的详细信息;



根据资料,需要修改生成的平台为X86;

但是项目的属性,生成,平台,这个地方的选项只有一个 Any CPU;可能是因为用的VS学习版本;



下面再用SharpDevelop打开升级转换后的工程;可以打开;

运行,出现下图错误;



修改目标CPU为x86;



运行起来;主界面;



信息浏览界面;



添加记录界面;



修改记录窗体;



下面看下其增删改的主要代码;


更新信息;

先把选定记录填充到文本框,然后显示窗体,代码如下;

	private void btModify_Click(object sender, System.EventArgs e)
		{
			if (dataGrid1.DataSource != null || dataGrid1[dataGrid1.CurrentCell] != null)
			{
				studentModify = new StudentModify();
				studentModify.textID.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim();
				studentModify.textName.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim();
				studentModify.comboSex.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Trim();
				studentModify.textNum.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][3].ToString().Trim();
				studentModify.textMajor.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][4].ToString().Trim();
				studentModify.date1.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][5].ToString().Trim();
				studentModify.textTeacher.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][6].ToString().Trim();
				studentModify.textRemark.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][7].ToString().Trim();
				studentModify.ShowDialog();
			}
			else
				MessageBox.Show("没有指定学生信息!","提示");
		}


点击确定按钮进行更新;

private void btAdd_Click(object sender, System.EventArgs e)
		{
			if ((textName.Text.Trim()=="") || (textID.Text.Trim()=="") || textNum.Text.Trim()=="")
				MessageBox.Show("提示","请输入完整的课程信息");
			else
			{ 
				oleConnection1.Open();
				string sql1="select * from studentinfo where SID<>'"+textID.Text.ToString()+"' and SNum='"+textNum.Text.ToString()+"'";
				oleCommand1.CommandText = sql1;
				if (null!=oleCommand1.ExecuteScalar())
					MessageBox.Show("身份证号发生重复","提示");
				else
				{
					string sql2="update studentinfo set SName='"+textName.Text.Trim()+"',SRemark='"+textRemark.Text.Trim()+"',"+
						"SSex='"+comboSex.Text.Trim()+"',SBirth='"+date1.Text.Trim()+"',SNum='"+textNum.Text.Trim()+"'"+
						" where SID='"+this.textID.Text.Trim()+"'";
					oleCommand1.CommandText=sql2;
					oleCommand1.ExecuteNonQuery();
					MessageBox.Show("学生信息修改成功","提示");
					this.Close();
				}
				oleConnection1.Close();
			}
		}


先检查是否有身份证重复;然后用填写的内容生成SQL update语句,用命令对象的ExecuteNonQuery方法执行update语句;


添加信息;

private void btAdd_Click(object sender, System.EventArgs e)
		{
			if (comboMajor.Text.Trim()==""||textName.Text.Trim()==""||comboSex.Text.Trim()==""||textID.Text.Trim()==""||textNum.Text.Trim()=="")
				MessageBox.Show("请填写完整信息","提示");
			else
			{
				oleConnection1.Open();
				string sql;
				sql="select * from studentinfo where SID='"+textID.Text.ToString()+"' or SNum='"+textNum.Text.ToString()+"'";
				OleDbCommand cmd=new OleDbCommand(sql,oleConnection1);
				if (null==cmd.ExecuteScalar())
				{
					sql="insert into studentinfo (MName,SName,SBirth,SNum,SRemark,SID,SSex,TID) values ('"+comboMajor.Text.Trim()+"',"+
						"'"+textName.Text.Trim()+"','"+date1.Text.Trim()+"','"+textNum.Text.Trim()+"','"+textRemark.Text.Trim()+"',"+
						"'"+textID.Text.Trim()+"','"+comboSex.Text.Trim()+"','"+comboTeacher.SelectedValue.ToString().Trim()+"')";       			
					cmd.CommandText=sql;
					cmd.ExecuteNonQuery();
					MessageBox.Show("学生添加成功","提示");
					clear();
				}
				else
					MessageBox.Show("身份证号或学号相同","提示");
				oleConnection1.Close();
			}
		}


首先检查是否有身份证重复;然后用填写的内容生成SQL insert into 语句,用命令对象的ExecuteNonQuery方法执行;


删除信息;

private void btDel_Click(object sender, System.EventArgs e)
		{
			if (dataGrid1.CurrentRowIndex>=0 && dataGrid1.DataSource != null && dataGrid1[dataGrid1.CurrentCell] != null)
			{
				string sql="delete * from studentinfo where SID='"+ds.Tables["student"].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim()+"'";
				oleConnection1.Open();
				oleCommand1.CommandText = sql;
				oleCommand1.ExecuteNonQuery();
				MessageBox.Show("删除学生'"+ds.Tables["student"].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim()+"'成功","提示");
				oleConnection1.Close();
			}
			else
				MessageBox.Show("没有指定学生信息!","提示");
		}


先判断DataGrid是否有选定信息;

然后根据选中的记录生成SQL delete语句,用命令对象的ExecuteNonQuery()方法执行;

delete语句的SID等于DataGrid当前行的第一列的值,即学号;


看下该项目的表的情况;




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值