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();
-
}
这样,在显示了学生信息之后,点中其中的一行,再点击删除信息按钮,就能成功删除该条学生信息了,可以重新点击“查看信息”进行查看。
到这里基本就已经结束了,博主要继续去学习新的知识去了,各位初学者一起加油。
有问题欢迎指正,谢谢。