c#窗体实现数据库的增删查改
- 行业动态
- 2025-02-05
- 1
在C#中,使用窗体应用程序实现数据库的增删查改操作是一个常见的需求,以下将详细介绍如何通过C#窗体应用程序连接数据库并实现这些基本操作:
1、准备工作
创建数据库和表:首先需要创建一个数据库和一个表,使用SQL Server Management Studio创建一个名为StudentDB
的数据库,并在其中创建一个名为Students
的表,包含字段如ID
(主键、自增)、Name
(姓名)、Age
(年龄)等。
添加引用:在C#窗体应用程序项目中,右键点击“引用”,选择“管理NuGet程序包”,搜索并安装System.Data.SqlClient
或其他适用于你的数据库的客户端库,以便与数据库进行交互。
2、连接数据库:在C#代码中,使用SqlConnection
类来建立与数据库的连接,以下是一个简单的示例代码:
string connectionString = "Server=服务器地址;Database=数据库名称;User Id=用户名;Password=密码;"; SqlConnection conn = new SqlConnection(connectionString); conn.Open();
3、实现增删查改功能
增加记录(Insert):通过SqlCommand
对象执行插入语句,将新记录添加到数据库表中,向Students
表中插入一条新学生记录:
string insertQuery = "INSERT INTO Students (Name, Age) VALUES (@Name, @Age)"; SqlCommand cmd = new SqlCommand(insertQuery, conn); cmd.Parameters.AddWithValue("@Name", "张三"); cmd.Parameters.AddWithValue("@Age", 20); int rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected > 0) { MessageBox.Show("记录添加成功!"); } else { MessageBox.Show("记录添加失败!"); }
删除记录(Delete):根据指定条件删除数据库表中的记录,根据学生ID删除一条记录:
string deleteQuery = "DELETE FROM Students WHERE ID = @ID"; SqlCommand cmdDelete = new SqlCommand(deleteQuery, conn); cmdDelete.Parameters.AddWithValue("@ID", 1); // 假设要删除ID为1的学生记录 int rowsDeleted = cmdDelete.ExecuteNonQuery(); if (rowsDeleted > 0) { MessageBox.Show("记录删除成功!"); } else { MessageBox.Show("记录删除失败!"); }
查询记录(Select):使用SqlDataReader
或DataTable
等对象来获取查询结果,并在窗体上显示,查询所有学生记录并显示在DataGridView控件中:
string selectQuery = "SELECT * FROM Students"; SqlCommand cmdSelect = new SqlCommand(selectQuery, conn); SqlDataReader reader = cmdSelect.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); dataGridView1.DataSource = dt;
修改记录(Update):执行更新语句来修改数据库表中已有记录的值,将ID为1的学生姓名修改为“李四”:
string updateQuery = "UPDATE Students SET Name = @Name WHERE ID = @ID"; SqlCommand cmdUpdate = new SqlCommand(updateQuery, conn); cmdUpdate.Parameters.AddWithValue("@Name", "李四"); cmdUpdate.Parameters.AddWithValue("@ID", 1); int rowsUpdated = cmdUpdate.ExecuteNonQuery(); if (rowsUpdated > 0) { MessageBox.Show("记录更新成功!"); } else { MessageBox.Show("记录更新失败!"); }
4、界面设计:在窗体上添加相应的控件,如TextBox用于输入数据,Button用于触发操作,DataGridView用于显示查询结果等,通过设置控件的属性和编写事件处理程序来实现用户与界面的交互。
5、异常处理:在数据库操作过程中,可能会发生各种异常,如连接失败、SQL语法错误等,需要使用try-catch
块来捕获和处理异常,以提高程序的稳定性和可靠性。
try { // 数据库操作代码 } catch (Exception ex) { MessageBox.Show("操作出错:" + ex.Message); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } }
6、完整示例:以下是一个简单的C#窗体应用程序示例,实现了对Students
表的增删查改操作:
| 功能 | 代码示例 |
| –| –|
| 增加记录 | “`csharp
private void btnAdd_Click(object sender, EventArgs e)
string name = txtName.Text;
int age = int.Parse(txtAge.Text);
string insertQuery = "INSERT INTO Students (Name, Age) VALUES (@Name, @Age)";
SqlCommand cmd = new SqlCommand(insertQuery, conn);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Age", age);
try
{
int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("记录添加成功!");
LoadData(); // 重新加载数据显示到DataGridView中
}
else
{
MessageBox.Show("记录添加失败!");
}
}
catch (Exception ex)
{
MessageBox.Show("操作出错:" + ex.Message);
}
“` |
| 删除记录 | “`csharp
private void btnDelete_Click(object sender, EventArgs e)
int id = int.Parse(txtID.Text);
string deleteQuery = "DELETE FROM Students WHERE ID = @ID";
SqlCommand cmdDelete = new SqlCommand(deleteQuery, conn);
cmdDelete.Parameters.AddWithValue("@ID", id);
try
{
int rowsDeleted = cmdDelete.ExecuteNonQuery();
if (rowsDeleted > 0)
{
MessageBox.Show("记录删除成功!");
LoadData(); // 重新加载数据显示到DataGridView中
}
else
{
MessageBox.Show("记录删除失败!");
}
}
catch (Exception ex)
{
MessageBox.Show("操作出错:" + ex.Message);
}
“` |
| 查询记录 | “`csharp
private void LoadData()
string selectQuery = "SELECT * FROM Students";
SqlCommand cmdSelect = new SqlCommand(selectQuery, conn);
SqlDataReader reader = cmdSelect.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
dataGridView1.DataSource = dt;
“` |
| 修改记录 | “`csharp
private void btnUpdate_Click(object sender, EventArgs e)
int id = int.Parse(txtID.Text);
string name = txtName.Text;
string updateQuery = "UPDATE Students SET Name = @Name WHERE ID = @ID";
SqlCommand cmdUpdate = new SqlCommand(updateQuery, conn);
cmdUpdate.Parameters.AddWithValue("@Name", name);
cmdUpdate.Parameters.AddWithValue("@ID", id);
try
{
int rowsUpdated = cmdUpdate.ExecuteNonQuery();
if (rowsUpdated > 0)
{
MessageBox.Show("记录更新成功!");
LoadData(); // 重新加载数据显示到DataGridView中
}
else
{
MessageBox.Show("记录更新失败!");
}
}
catch (Exception ex)
{
MessageBox.Show("操作出错:" + ex.Message);
}
“` |
7、注意事项:在实际开发中,还需要考虑一些其他因素,如数据的验证和合法性检查、用户权限管理、数据库性能优化等,不同的数据库可能需要使用不同的客户端库和连接字符串格式,需要根据实际情况进行调整。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/140422.html