### 数据库技术:C#中的SQL操作实例 #### 概述 本文将详细介绍一个使用C#语言实现的简单示例程序,该程序演示了如何利用ADO.NET中的`SqlConnection`、`SqlCommand`对象来完成对数据库的基本操作,包括增删改查(CRUD)。通过这个例子,读者可以了解到在实际开发过程中如何与数据库进行交互。 #### 关键概念 1. **ADO.NET**:用于访问数据源的.NET Framework组件之一,它提供了强大的数据访问功能。 2. **SqlConnection**:表示到SQL Server数据库的连接。 3. **SqlCommand**:表示发送到数据库服务器的命令。 4. **SqlParameter**:代表SQL命令中的参数,用于传递数据值。 #### 代码解析 ##### 连接数据库 ```csharp SqlConnection con = new SqlConnection(); con.ConnectionString = "DataSource=.;InitialCatalog=demoDB;IntegratedSecurity=True"; con.Open(); ``` - **DataSource**:指定数据库服务器地址。 - **InitialCatalog**:指定初始数据库名称。 - **IntegratedSecurity**:设置为True时,使用Windows身份验证连接到数据库。 ##### 查询数据 虽然示例代码中的查询部分被注释掉了,但这里仍可解释其含义: ```csharp // 查询 // cmd.CommandText = "select * from students where id=@id"; // cmd.Parameters.Add("@id", SqlDbType.Int); // Console.WriteLine("请输入查询ID:"); // cmd.Parameters[0].Value = Convert.ToInt32(Console.ReadLine()); // SqlDataReader rd = cmd.ExecuteReader(); // while (rd.Read()) // { // for (int i = 0; i < rd.FieldCount; i++) // { // Console.Write(rd[i].ToString() + '\t'); // } // Console.WriteLine(); // } ``` - **SqlCommand.CommandText**:设置SQL语句。 - **SqlCommand.Parameters.Add**:添加参数到命令中。 - **SqlDataReader**:读取查询结果。 ##### 插入数据 ```csharp // 插入 // cmd.CommandText = "insert into students values(@id, @name, @score)"; // cmd.Parameters.Add("@id", SqlDbType.Int); // cmd.Parameters.Add("@name", SqlDbType.NVarChar); // cmd.Parameters.Add("@score", SqlDbType.Float); // Console.WriteLine("请输入ID:"); // cmd.Parameters[0].Value = Convert.ToInt32(Console.ReadLine()); // Console.WriteLine("请输入姓名:"); // cmd.Parameters[1].Value = Console.ReadLine(); // Console.WriteLine("请输入成绩:"); // cmd.Parameters[2].Value = Convert.ToDecimal(Console.ReadLine()); // int i = cmd.ExecuteNonQuery(); // if (i == 1) // { // Console.WriteLine("成功"); // } // else // { // Console.WriteLine("失败"); // } ``` - 使用`ExecuteNonQuery`方法执行非查询命令,如插入、更新或删除。 - 成功插入一行返回1,未插入返回其他值。 ##### 删除数据 ```csharp // 删除 // cmd.CommandText = "delete from students where id=@id"; // cmd.Parameters.Add("@id", SqlDbType.Int); // Console.WriteLine("请输入要删除的ID:"); // cmd.Parameters[0].Value = Convert.ToInt32(Console.ReadLine()); // int i = cmd.ExecuteNonQuery(); // if (i >= 1) // { // Console.WriteLine("成功"); // } // else // { // Console.WriteLine("失败"); // } ``` - 类似于插入,使用`ExecuteNonQuery`方法执行删除操作。 - 成功删除一行返回1或更多,未删除返回0。 ##### 更新数据 ```csharp // 更新 cmd.CommandText = "update students set score=@score where id=@id"; cmd.Parameters.Add("@id", SqlDbType.Int); cmd.Parameters.Add("@score", SqlDbType.Float); Console.WriteLine("请输入要更新的ID:"); cmd.Parameters[0].Value = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入要更新的成绩:"); cmd.Parameters[1].Value = Convert.ToDecimal(Console.ReadLine()); int i = cmd.ExecuteNonQuery(); if (i == 1) { Console.WriteLine("成功"); } else { Console.WriteLine("失败"); } ``` - 类似于插入和删除,使用`ExecuteNonQuery`方法执行更新操作。 - 成功更新一行返回1,未更新返回0。 #### 小结 通过上述示例代码,我们可以看到如何使用C#与SQL Server数据库进行交互。这些基本操作(增删改查)是任何应用程序开发中必不可少的部分。了解这些概念和实践对于成为一名合格的软件开发者至关重要。希望本篇内容能帮助读者更好地理解和掌握数据库操作的相关知识。
using System.Data;
using System.Data.SqlClient;
class DemoDB
{
public static void Main()
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.;Initial Catalog=demoDB;Integrated Security=True";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
//1、查询
// cmd.CommandText = "select * from students where id=@id";
// cmd.Parameters.Add("@id", SqlDbType.Int);
// Console.WriteLine("请输入要查询的ID号");
// cmd.Parameters[0].Value = Convert.ToInt32(Console.ReadLine());
//SqlDataReader rd= cmd.ExecuteReader();
//while (rd.Read())
//{
// for (int i = 0; i < rd.FieldCount; i++)
// {
// Console.Write(rd[i].ToString() + '\t');
// }
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java-美妆神域_3rm1m18i_221-wx.zip
- springboot高考志愿智能推荐系统 LW PPT.zip
- web学校课程管理系统(编号:07471106).zip
- SpringBoot的校园服务系统(编号:61189239).zip
- 百货中心管理系统(编号:745621100)(1).zip
- 毕业生就业推荐系统(编号:0225912).zip
- game_patch_1.29.13.13020.pak
- 毕业生追踪系统(编号:13356163).zip
- 宾馆客房管理系统设计与实现(编号:70764218).zip
- 餐品美食论坛(编号:3118587).zip
- 仓库管理系统(编号:6809848).zip
- 大学生就业系统.zip
- 宠物管理系统.zip
- 大学生心理咨询平台(编号:40361285).zip
- 大学生校园线上招聘系统(编号:0926903)(1).zip
- 大学生就业信息管理系统_xb8ce10b_229-wx.zip