您的位置:首页 > 数据库

C#窗体应用程序 vs + sql server2008连接举例,简单的学生信息管理系统

2016-01-12 14:43 1016 查看
C#窗体应用程序 vs + sql server2008连接举例,简单的学生信息管理系统:http://blog.csdn.net/u011602967/article/details/50503600,转发请注明出处。

电脑 win8.1 专业版 64位

vs 2013 + sql server2008

sql server2008安装教程:点击打开链接

sql server 2008常见问题以及解决方法:http://blog.csdn.net/u011602967/article/details/50501906

看了几天关于C#介绍的书后,boss开始让我自己创建一个C#窗体应用程序,连接数据库sql server,并实现简单的添删改查。我这里制作了一个简单的学生信息管理系统,实现登陆以及学生信息的添删改查操作。

第一部分 数据库的准备工作

1.打开配置管理器,启动server(MSSQLSERVER)服务,连接本地服务器



2.建立新的数据库LoginTable,并在其目录下建立两张新表如下图,建立新表的方式这里就不详细叙述了,表login和student,分别设计如下:




登陆表设计用户名以及登陆密码


学生表设计学号id、学生姓名sname、分数score,这里的学生表里面的学号本来应该是连续的。这里有必要说明一下:我这里设置了id为标识,这一栏不用自己设置,系统会自动生成连续的编号,现在之所以不连续,是因为我写好了窗体应用程序后进行测试,所以删除了一部分的数据。

第二部分 vs与数据库的连接

1.打开vs,新建一个窗体应用程序,(我这里没有修改默认的名称)默认命名为WindowsFormsApplication3,名称可以自己随意修改。设计Form1窗体为下图所示:


这里为了省事,注册和登陆用的是同一个窗体。

2.接下来就是数据库和vs的连接部分了,在vs工具栏中选择 工具—>连接到数据库—>Microsoft sql server—>继续 ,在弹出来的窗体中输入自己的服务器名,在下面的“选择或输入数据库名称”的下拉项中会自动匹配你已经建立好的数据库LoginTable,选择好了之后,直接点击确定就over啦,数据库和vs的连接就杠杠的没有问题啦!





连接成功后能在vs操作界面的左边看到连接好的数据库:



第三部分 代码实现部分

然后就是我们的代码部分了,双击自己设计的Form1中的button按钮登陆,进入代码设计界面,填写如下代码,我这里也是初学,所以有很详细的代码解释的注释,这里强调一点,一定要记得在最前面添加代码 using System.Data.SqlClient;!!!:

1.登陆

private void button1_Click(object sender, EventArgs e)//登陆
{
//数据库连接字符串(引号中的字符串为之前复制的那段字符)
//Data source=服务器名,Initial catalog=数据库名,User Id=sqlserver连接名,
//Password=数据库连接密码,integrated Security=True
string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string selectsql = "Select * from login where username = '" + textBox1.Text + "' and password='" + textBox2.Text + "'";
SqlCommand cmd = new SqlCommand(selectsql, conn);//SqlCommand对象允许你指定在数据库上执行的操作的类型。
cmd.CommandType = CommandType.Text;
//这就是告诉cmd执行的sql是你赋给CommandText的值里写出的sql语句,
//如果是存储过程的话cmd.CommandType = CommandType.StoredProcedure;
//然后CommandText='存储过程的名字',这就是告诉cmd执行的是存储过程,
//存储过程的名字就是CommandText的值

//CommandType是SqlCommand对象的一个属性,用于指定执行动作的形式,
//它告诉.net接下来执行的是一个文本(text)、
//存储过程(StoredProcedure)还是表名称(TableDirect).
//而CommandType是一个枚举类型。
//有三个值:text、StoredProcedure、TableDirect
//用于表示SqlCommand对象CommandType的执行形式。

SqlDataReader sdr;
sdr = cmd.ExecuteReader();
if (sdr.Read())
{
//label3.Text = "登陆成功!";
//MainForm form = new MainForm();//登陆成功显示主界面
//form.Show();
this.DialogResult = System.Windows.Forms.DialogResult.OK;//这里实现登陆成功后关掉登录界面

}
else
{
label3.Text = "登陆失败!请检查用户名或者密码重新登陆!";
//label3在界面没有显示,因为我设置了显示为一个空格,这个可以自己随意在登陆界面的某个位置添加一个label控件用以显示提示信息
return;
}
conn.Close();
}
2.注册

注册的代码实现方法和登陆基本相同,只需把上述代码中的sql查询语句改成:insert into login values('" + textBox1.Text + "','" + textBox2.Text + "') 即可实现注册功能。

3.新建一个窗体 命名为MainForm,进行如下设计:



关于"关联"的方法,在DataGirdView控件中编辑列,进行如下操作:



4.显示信息

private void button1_Click(object sender, EventArgs e)//显示信息
{
string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
SqlConnection conn = new SqlConnection(str);
conn.Open();

SqlDataAdapter sqlDap = new SqlDataAdapter("Select * from student",conn);
DataSet dds = new DataSet();
sqlDap.Fill(dds);
DataTable _table = dds.Tables[0];
int count = _table.Rows.Count;
dataGridView1.DataSource = _table;
conn.Close();
//dataGridView1.DataBind();//在网上找的方法中有这一句,在这里这一句可以不要,不然报错
conn.Close();
}
5.添加和修改

新建一个窗体,设计如下:


添加和修改的方法相似,这里……呵呵你懂了,都是为了省事方便,设计在同一个窗体中了。。。

代码如下:

private void button1_Click(object sender, EventArgs e)//添加信息
{
string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string selectsql = "insert into student values('" +textBox2.Text + "',"+textBox3.Text+")";
SqlCommand cmd = new SqlCommand(selectsql, conn);
cmd.CommandType = CommandType.Text;
SqlDataReader sdr;
sdr = cmd.ExecuteReader();
conn.Close();
//UpdataForm udform = new UpdataForm();

this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
<pre name="code" class="csharp">private void button2_Click(object sender, EventArgs e)//修改信息
{
string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string selectsql = "update student set score = "+ textBox3.Text +" where sname = '"+textBox2.Text+"'";
SqlCommand cmd = new SqlCommand(selectsql, conn);
cmd.CommandType = CommandType.Text;
SqlDataReader sdr;
sdr = cmd.ExecuteReader();
//UpdataForm udform2 = new UpdataForm();
this.DialogResult = System.Windows.Forms.DialogResult.Yes;

conn.Close();

}



6.删除

删除的方法的话,这里多说几句。我想要实现的是鼠标在DataGirdView控件中选中一行学生信息,然后进行删除,实现代码如下:

private void button4_Click(object sender, EventArgs e)//删除信息
{
string str = @"Data Source=lenovo;Initial catalog=LoginTable;integrated Security=True";
SqlConnection conn = new SqlConnection(str);
conn.Open();
if (dataGridView1.SelectedRows.Count != 1) return;
if (dataGridView1.CurrentRow == null) return;
//string bd = dataGridView1.CurrentRow.Cells[2].Value.ToString();

DataRowView row = dataGridView1.CurrentRow.DataBoundItem as DataRowView;
if (row["id"] == null) return;//可以进行快速监视
string bd = Convert.ToString(row["id"]);
string selectsql = "delete from student where id = "+ bd +"";
SqlCommand cmd = new SqlCommand(selectsql, conn);
cmd.CommandType = CommandType.Text;
//SqlDataReader sdr;
//sdr = cmd.ExecuteReader();
int ret = cmd.ExecuteNonQuery();//受影响的行数(总数)
if (ret==-1)
{
MessageBox.Show("删除失败!");
return;
}
else
{
MessageBox.Show("删除成功!");
}
conn.Close();
}
这样,在显示了学生信息之后,点中其中的一行,再点击删除信息按钮,就能成功删除该条学生信息了,可以重新点击“查看信息”进行查看。

到这里基本就已经结束了,博主要继续去学习新的知识去了,各位初学者一起加油。

有问题欢迎指正,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: