C#与SQL数据库操作:增删改查基础示例
"这篇资源是关于C#与SQL结合进行数据库操作的基础教程,主要涵盖了增、删、改、查这四个基本操作。适用于初学者学习参考。" 在编程领域,尤其是涉及到数据库操作时,C#结合SQL是常见的开发方式。本资源提供了一些基础的示例代码,帮助初学者理解如何在C#应用中执行SQL语句来操作数据库。以下是具体的知识点详解: 1. **C# 数据库连接**: 使用`System.Data.SqlClient`命名空间中的`SqlConnection`类来建立与SQL Server数据库的连接。连接字符串`str`包含了数据库服务器名、数据库名、身份验证方式等信息。 2. **SQL 查询**: 示例中的`stringsql="selecttid,tname,tdesc,tstartdatefromT_stu";`是一条SQL查询语句,用于从`T_stu`表中选取`tid`、`tname`、`tdesc`和`tstartdate`四列数据。 3. **命令对象`: `SqlCommand`类用于执行SQL命令。创建`SqlCommand`实例时,需要传入SQL语句和对应的数据库连接`con`。 4. **打开数据库连接**: `con.Open()`用于打开与数据库的连接。 5. **数据读取器`: `SqlDataReader`用于从数据库中读取数据流。`cmd.ExecuteReader()`返回一个数据读取器,可以通过它逐行读取查询结果。 6. **遍历查询结果**: `while(reader.Read())`循环遍历数据读取器中的每一行数据,`reader["Tdesc"]`等语句用于获取指定列的值。这里要注意,从数据库中读取的数据需要转换成合适的类型,如`ToString()`将数据转换为字符串,`Convert.ToInt32`将数据转换为整型。 7. **数据模型**: `TClass`是自定义的数据模型类,用于存储从数据库中读取的数据。每个实例对应一行查询结果,属性如`Tid`、`Tname`、`Tdesc`和`Tstartdate`分别对应数据库中的列名。 8. **数据绑定**: 尽管示例中没有展示,但在实际应用中,通常会将获取到的数据绑定到UI控件(如DataGridView)上,以显示查询结果。 9. **资源管理**: 使用`using`语句确保了数据库连接和数据读取器在使用完毕后会被正确关闭和释放,这是良好的编程习惯,可以防止资源泄漏。 10. **增删改操作**: 示例只展示了查询操作,但增、删、改的操作原理类似。增加数据通常使用`INSERT INTO`语句,删除使用`DELETE FROM`,修改使用`UPDATE SET`。对应的C#代码会调用`SqlCommand`的`ExecuteNonQuery()`方法,而不是`ExecuteReader()`。 对于初学者来说,理解和掌握这些基本概念是至关重要的。通过这个简单的示例,你可以逐步学习如何在C#应用程序中有效地与SQL数据库交互,实现数据的增删改查功能。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace dbtest2whole
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
LoadClass();//默认加载
}
//加载班级数据的方法
private void LoadClass()
{
//创建集合用来存放班级的对象
List<TClass> list = new List<TClass>();
//创建连接字符串
//连接数据库
using (SqlConnection con = new SqlConnection(str))//创建连接
{
string sql = "select tid, tname, tdesc,tstartdate from T_stu";//创建SQL语句
using (SqlCommand cmd = new SqlCommand(sql, con))//创建命令
{
con.Open();//打开数据库
//执行命令,读取出表中所有的数据用executereader
using (SqlDataReader reader = cmd.ExecuteReader())//sqldatareader读取数据后也需要释放所有放到using里
{
//读取数据前先判断是否有数据
if (reader.HasRows)//有数据
{
//通过循环将所有数据读取
while (reader.Read())
{
TClass tc = new TClass();
tc.Tdesc = reader["Tdesc"].ToString();
tc.Tid = Convert.ToInt32(reader["Tid"]);//
tc.Tname = reader["Tname"].ToString();
tc.Tstartdate = Convert.ToDateTime(reader["Tstartdate"]);
list.Add(tc);//每次遍历都给list增加一个
}//endwhile
}//endif
}//endusingreader
}//endusingcmd
}//endusingcon
dgv.DataSource=list ;
//将第一列隐藏
剩余6页未读,继续阅读
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦