通过ado.net对象的使用和sqlhelper工具类实现一个数据库包含学生信息管理系统 新建项目 设置窗体界面 设置datagridview 数据源、列属性、绑定数据 加载combobox列表数据 查询数据、添加数据 修改数据、删除数据 等功能,代码实现
时间: 2024-05-08 20:22:24 浏览: 116
很抱歉,由于我是一名自然语言处理模型,无法直接提供编程环境。不过我可以给你提供一些思路和代码示例,希望能够帮助你完成这个项目。
1. 连接数据库
使用ADO.NET对象来连接数据库,可以使用SqlConnection类来创建连接对象。在连接对象创建完成后,可以使用SqlCommand类来执行SQL语句。以下是连接数据库的示例代码:
```csharp
using System.Data.SqlClient;
SqlConnection conn = new SqlConnection("连接字符串");
conn.Open();
SqlCommand cmd = new SqlCommand("SQL语句", conn);
cmd.ExecuteNonQuery();
conn.Close();
```
2. 使用SqlHelper工具类
SqlHelper是一个常用的工具类,可以简化数据库操作的代码。以下是SqlHelper类的示例代码:
```csharp
using System.Data;
using System.Data.SqlClient;
public class SqlHelper
{
private static string connectionString = "连接字符串";
public static int ExecuteNonQuery(string cmdText, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(cmdText, conn))
{
if (parameters != null)
{
cmd.Parameters.AddRange(parameters);
}
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
public static object ExecuteScalar(string cmdText, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(cmdText, conn))
{
if (parameters != null)
{
cmd.Parameters.AddRange(parameters);
}
conn.Open();
return cmd.ExecuteScalar();
}
}
}
public static DataTable ExecuteDataTable(string cmdText, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(cmdText, conn))
{
if (parameters != null)
{
cmd.Parameters.AddRange(parameters);
}
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
}
}
}
```
3. 创建学生信息表
在数据库中创建一个名为Student的表,包含以下列:ID(主键)、Name、Age、Gender、Class。
```sql
CREATE TABLE Student
(
ID INT PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Age INT NOT NULL,
Gender NVARCHAR(10) NOT NULL,
Class NVARCHAR(50) NOT NULL
)
```
4. 界面设计
使用Windows Forms创建一个窗体,包含DataGridView和若干个文本框和按钮,用于显示、添加、修改、删除学生信息。
5. 数据绑定
在窗体加载时,使用SqlHelper工具类从数据库中读取学生信息,并将其显示在DataGridView中。以下是示例代码:
```csharp
private void Form1_Load(object sender, EventArgs e)
{
string cmdText = "SELECT * FROM Student";
DataTable dt = SqlHelper.ExecuteDataTable(cmdText);
dataGridView1.DataSource = dt;
}
```
6. 查询数据
在查询按钮的Click事件中,使用SqlHelper工具类根据条件从数据库中读取学生信息,并将其显示在DataGridView中。以下是示例代码:
```csharp
private void btnSearch_Click(object sender, EventArgs e)
{
string name = txtName.Text.Trim();
string cmdText = "SELECT * FROM Student WHERE Name LIKE @Name";
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Name", "%" + name + "%")
};
DataTable dt = SqlHelper.ExecuteDataTable(cmdText, parameters);
dataGridView1.DataSource = dt;
}
```
7. 添加数据
在添加按钮的Click事件中,使用SqlHelper工具类向数据库中插入一条学生信息,并更新DataGridView中的数据。以下是示例代码:
```csharp
private void btnAdd_Click(object sender, EventArgs e)
{
string name = txtName.Text.Trim();
int age = int.Parse(txtAge.Text.Trim());
string gender = cboGender.Text;
string @class = txtClass.Text.Trim();
string cmdText = "INSERT INTO Student(ID, Name, Age, Gender, Class) VALUES(@ID, @Name, @Age, @Gender, @Class)";
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@ID", GetNewID()),
new SqlParameter("@Name", name),
new SqlParameter("@Age", age),
new SqlParameter("@Gender", gender),
new SqlParameter("@Class", @class)
};
SqlHelper.ExecuteNonQuery(cmdText, parameters);
string cmdText2 = "SELECT * FROM Student";
DataTable dt = SqlHelper.ExecuteDataTable(cmdText2);
dataGridView1.DataSource = dt;
}
```
8. 修改数据
在DataGridView的CellDoubleClick事件中,获取选中行的学生信息,并将其显示在文本框中。在修改按钮的Click事件中,使用SqlHelper工具类更新选中行的学生信息,并更新DataGridView中的数据。以下是示例代码:
```csharp
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
txtName.Text = dataGridView1.Rows[e.RowIndex].Cells["Name"].Value.ToString();
txtAge.Text = dataGridView1.Rows[e.RowIndex].Cells["Age"].Value.ToString();
cboGender.Text = dataGridView1.Rows[e.RowIndex].Cells["Gender"].Value.ToString();
txtClass.Text = dataGridView1.Rows[e.RowIndex].Cells["Class"].Value.ToString();
}
private void btnUpdate_Click(object sender, EventArgs e)
{
int id = int.Parse(dataGridView1.SelectedRows[0].Cells["ID"].Value.ToString());
string name = txtName.Text.Trim();
int age = int.Parse(txtAge.Text.Trim());
string gender = cboGender.Text;
string @class = txtClass.Text.Trim();
string cmdText = "UPDATE Student SET Name=@Name, Age=@Age, Gender=@Gender, Class=@Class WHERE ID=@ID";
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Name", name),
new SqlParameter("@Age", age),
new SqlParameter("@Gender", gender),
new SqlParameter("@Class", @class),
new SqlParameter("@ID", id)
};
SqlHelper.ExecuteNonQuery(cmdText, parameters);
string cmdText2 = "SELECT * FROM Student";
DataTable dt = SqlHelper.ExecuteDataTable(cmdText2);
dataGridView1.DataSource = dt;
}
```
9. 删除数据
在删除按钮的Click事件中,使用SqlHelper工具类删除选中行的学生信息,并更新DataGridView中的数据。以下是示例代码:
```csharp
private void btnDelete_Click(object sender, EventArgs e)
{
int id = int.Parse(dataGridView1.SelectedRows[0].Cells["ID"].Value.ToString());
string cmdText = "DELETE FROM Student WHERE ID=@ID";
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@ID", id)
};
SqlHelper.ExecuteNonQuery(cmdText, parameters);
string cmdText2 = "SELECT * FROM Student";
DataTable dt = SqlHelper.ExecuteDataTable(cmdText2);
dataGridView1.DataSource = dt;
}
```
以上是一个简单的学生信息管理系统的实现代码示例,希望能对你有所帮助。
阅读全文