ADO.NET导入数据库
public partial class Form1 : Form
{
jiaowudataEntities mydb = new jiaowudataEntities();
新建一个数据库全局变量
IsMdiContainer属性true,使之成为一个父窗体
private void button1_Click(object sender, EventArgs e)
{
var user = textBox1.Text;
var code = textBox2.Text;
var xs = mydb.学生表.Any(x => x.姓名 == user && x.密码 == code);
if (xs)
{
Form2 FormMain = new Form2();
FormMain.Show();
}
else
{
MessageBox.Show("用户名或密码错误");
}
}
初始界面“确认”键代码,如果用户名和密码存在于数据库中,则弹出管理界面窗口,否则弹窗提示“用户名或密码错误”
问题2:var xs = mydb.学生表.Any(x => x.姓名 == user && x.密码 == code);关于Any中的表示
Form3只有一个dataGridView控件,目的是在管理界面中作为子窗体显示
public partial class Form3 : Form
{
jiaowudataEntities mydb = new jiaowudataEntities();
新建数据库全局变量
private void Form3_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = mydb.学生表;
}
在dataGrvidView控件中显示学生表中的数据
显示如上错误
dataGridView1.DataSource = mydb.学生表.ToList();
使用ToList方法解决
问题3:dataGridView的数据引用
PS:控件的Anchor属性可以固定其与窗体边缘的相对位置,以达到调整窗体大小可以相应改变控件大小的目的
private void 学生管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 xsb = new Form3();
xsb.MdiParent = this;
xsb.Show();
}
管理界面中单击管理菜单下的学生管理按钮的代码,制定Form3的父窗体到管理界面窗体,单击时显示。
问题4:重复单击学生管理按钮,弹出多个窗体,与容器窗体初衷相悖
但是,修改过程中如何实现从窗口Form3调用所在行信息好麻烦,未完待续。
过了半个星期了,继续- -|||
学生表 currxs;
public Form4(学生表 xs)
{
InitializeComponent();
xs = currxs;
textBox1.Text = xs.学号;
}
之前是这么写的来着,然后运行到这会报错显示xs是null,可不是嘛,自己在前面定义一个currxs然后又赋值给xs,宛若智障。。。
Form4 FormEdit = new Form4(xs);
学生表 currxs;
public Form4(学生表 xs)
{
InitializeComponent();
currxs = xs;
textBox1.Text = currxs.学号;
textBox2.Text = currxs.姓名;
textBox3.Text = currxs.性别;
textBox4.Text = currxs.班级;
textBox5.Text = currxs.通信地址;
textBox6.Text = currxs.出生日期.ToString();
textBox7.Text = currxs.身高.ToString();
textBox8.Text = currxs.金额.ToString();
}
窗体间的参数传递:在调用窗体的时候,加上参数;被调用窗体直接引用即可。
此处老师的示例新建了一个全局变量,并先将所调用的参数传递给本窗体的全局变量再进行 操作。
private void button1_Click(object sender, EventArgs e)
{
var xs = new 学生表();
xs.学号 = textBox1.Text;
xs.姓名 = textBox2.Text;
xs.性别 = textBox3.Text;
// xs.班级 = textBox4.Text;
xs.通信地址 = textBox5.Text;
xs.出生日期 = DateTime.Parse(textBox6.Text);
xs.身高 = decimal.Parse(textBox7.Text);
xs.金额 = decimal.Parse(textBox8.Text);
var mydb = new jiaowudataEntities();
mydb.学生表.Add(xs);
mydb.SaveChanges();
this.Close();
}
其中老师给的数据库中“班级”与其他表有关联(其他表的主键),所以不可以进行更改
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
var user = textBox1.Text;
var code = textBox2.Text;
var xs = mydb.学生表.Any(x => x.姓名 == user && x.密码 == code);
if (xs)
{
Form2 FormMain = new Form2();
FormMain.Show();
}
else
{
MessageBox.Show("用户名或密码错误");
}
}
}
新增在登录界面回车进行输入的功能,利用KeyDown和 .KeyCode==Keys.Enter
问题:查询如何定位到DateGridView中所查询的行