结果如图所示:
第一步:创建数据库-----StudentGrade,并建立Student表和Grade表,Sid,Gid自增,Student.Gid建立外键与Grade.Gid主健关联。此处的年级列,采用多表查询的方式获得。
第二步:创建窗体程序,并引入RL.DBUtility引用。
第三步:添加控件并命名
第四步:为查找(btnSearch)按钮添加点击功能
功能代码:
private void btnSearch_Click(object sender, EventArgs e)
{
//操作前的准备
string Sname = "%" + textName.Text + "%";//获取数据并添加模糊查询
//准备好sql语句
string sql = "SELECT Sid,Sname,Ssex,Grade.Gname FROM Student INNER JOIN Grade ON Student.Gid = Grade.Gid WHERE Sname like @Sname";
SqlParameter[] pms = {
new SqlParameter("Sname",SqlDbType.NVarChar,50)
};//创建参数
pms[0].Value = Sname;//为参数赋值
//DataSet是将查询结果填充到本地内存中,这样即使与连接断开,服务器的连接断开,都不会影响数据的读取。
//但是它也有一个坏处,就是只有小数据量才能往里面存放,数据量大了就给你的本地内存冲爆了。电脑会卡死去。
//大数据量的话还得用SqlDataReader
DataSet ds = DbHelperSQL.Query(sql,pms);//执行sql语句,并利用DataSet将数据填充到本地内存中
dgvGrade.DataSource = ds.Tables[0];//DataGridView获取ds中的数据
}
结果显示:
第五步:为新增按钮(btnAdd)添加点击事件跳转到第二个窗体
点击功能代码:
//点击添加按钮功能
private void btnAdd_Click(object sender, EventArgs e)
{
anotherForm = new Form2();
this.Hide(); //把当前窗体隐藏起来了
anotherForm.ShowDialog(); //模态弹出新窗口
}
注意添加变量(如图):
第六步:设计添加界面(Form2)并命名(如图):
此处做一点小改动:
第七步:
为确认按钮(btnConfirm)添加功能,将数据插入到数据库内。
功能代码:
private void btnConfirm_Click(object sender, EventArgs e)
{
//获取输入
string name = textName.Text;//获取姓名
//获取性别
string sex = "男";
if (rbMale.Checked == true)
{
sex = "男";
}
else
{
sex = "女";
}
string grade = textGradeId.Text;//获取年级编号
string phone = textPhone.Text;//获取电话
string address = textAddress.Text;//获取地址
string date = textDate.Text;
string Email = textEmail.Text;//获取Email
//编辑sql语句
string sql = "INSERT Student(Sname,Ssex,Student.Gid,Sphone,Saddress,date,Email) values (@Sname,@Ssex,@Gid,@Sphone,@Saddress,@date,@Email)";
SqlParameter[] pms = {
new SqlParameter("@Sname",SqlDbType.NVarChar,50),
new SqlParameter("@Ssex",SqlDbType.NChar,10),
new SqlParameter("@Gid",SqlDbType.Int),
new SqlParameter("@Sphone",SqlDbType.NVarChar,50),
new SqlParameter("@Saddress",SqlDbType.NVarChar,50),
new SqlParameter("@date",SqlDbType.NVarChar,50),
new SqlParameter("@Email",SqlDbType.NVarChar,50)
};//创建参数
pms[0].Value = name;//为参数赋值
pms[1].Value = sex;//为参数赋值
pms[2].Value = grade;//为参数赋值
pms[3].Value = phone;//为参数赋值
pms[4].Value = address;//为参数赋值
pms[5].Value = date;//为参数赋值
pms[6].Value = Email;//为参数赋值
//DataSet ds = DbHelperSQL.Query(sql, pms);//DbHelperSQL.Query(sql,pms)返回类型为dataset类型
DbHelperSQL.ExecuteSql(sql,pms);
Application.ExitThread();//退出当前线程
}
执行结果: