ADO连接数据库的增删改查方法

简介:
1:添加命名空间System.Data.SqlClient中的SQL Server访问类;
  2:与SQL Server数据库建立连接,ADO.NET提供Connection对象用于建立与SQL Server数据库的连接
  string connectionStr = "Data source=服务器名;Initial Catalog=数据库名称; uid=用户名;pwd=密码()";        //  定义连接字符串
  // Integrated Security=True    集成身份验证
  //uid=xxx;Pwd=xxx    用户名密码登陆
  SqlConnection connection1 = new SqlConnection(connectionStr);           ///实例化Connection对象用于连接数据源
  connection1.Open();                                                                          ///打开 数据库连接
  ……………
  connection1.Close();                                                                         ///关闭数据库连接
   3:与SQL Server数据库建立连接后,使用命令对象SqlCommand类直接对数据库进行操作
  (1)增加、删除、修改操作
  SqlConnection connection1 = new SqlConnection(connectionStr);            //建立连接
  connection1.Open();                                                                            //打开数据库连接
  string sqlStr = "(SQL执行语句,例如  insert into A  values('abc',1))";       //定义相关的执行语句,相当于写好命令
  SqlCommand command1 = new SqlCommand(sqlStr, connection1);          //构造函数指定命令对象所使用的连接对象connection1以及命令文本sqlStr ,相当于让系统接受命令。
  command1.ExecuteNonQuery();                                                             //ExecuteNonQuery()方法返回值为一整数,代表操作所影响到的行数,注意ExecuteNonQuery()方法一般用于执行                                                                                                                           // UPDATE、INSERT、DELETE等非查询语句,可以理解为让系统执行命令
  connection1.Close();     ///关闭数据库连接
  示例1:删除的Course表中课程编号为003的记录:
string connectionStr = "Data source=.;Initial Catalog=Student; Integrated Security=True";
SqlConnection connections = new SqlConnection(connectionStr);
string sqlstr = "delete from Course where Cno='006' ";
SqlCommand command1 = new SqlCommand(sqlstr, connectionss);
conn.Open();
if (command1.ExecuteNonQuery() > 0)
{
MessageBox.Show("删除课程成功!");
};
connections .Close();
  示例2:向Course表中增加一门课程,课程信息由前台输入
string connectionStr = "Data source=.;Initial Catalog=Student;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionStr);
int Credit = Convert.ToInt32(txtCredit.Text); /TextBox.text是string类型,需要用到强制转换方法“Convert.ToInt32”将string类型转化为int类型
string sqlStr = "insert into Course values('" + txtCno.Text + "','" + txtCname.Text + "'," + Credit + ")";//因为字符串的组成部分为需要从前台读取的变量,所以在这里需要用到字符串拼接,
//拼接字符:‘ “+字符串变量+” ’,拼接数字:“+数字变量+”
SqlCommand command1= new SqlCommand(sqlStr, connection);
connection.Open();
if (command1.ExecuteNonQuery() > 0)
{
MessageBox.Show("课程添加成功!");
};
connection.Close();
示例3:把课程“线性代数”的学分修改为5分
string connectionStr = "Data source=.;Initial Catalog=Student; Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionStr);
string sqlStr = "update Course set Ccredit=5 where Cname='线性代数'";
SqlCommand command1= new SqlCommand(sqlStr, connection);
connection .Open();
if (command1.ExecuteNonQuery() > 0)
{
MessageBox.Show("学分修改成功!");
};
connection .Close();
  (2)查询数据库,用ExecuteScalar()方法,返回单个值(Object)(查询结果第一行第一列的值)
  示例4:从Student表中查询学号为201244111学生的姓名:
string connectionStr = "Data source=.;Initial Catalog=Student;
Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionStr);
string sqlstr = "select Sname from student where Sno='201244111' ";
SqlCommand command1 = new SqlCommand(sqlstr, connection);
connection.Open();
string studentName = command1.ExecuteScalar().ToString();
MessageBox.Show(studentName);
connection.Close();
  使用DataReader读取多行数据,逐行读取,每次读一行
  示例5:运用DataReader逐行读出student表中的第一列数据
string connectionStr = "Data source=.;Initial Catalog=Student;
Integrated Security=True"; SqlConnection connection = new SqlConnection(connectionStr);
string sqlstr = "select *from student";
SqlCommand command1 = new SqlCommand(sqlstr, connection);
connection.Open();
SqlDataReader dataReader1 = command1.ExecuteReader();
// DataReader类没有构造函数,不能实例化,需要通过调用Command对象的command1的ExecuteReader()方法
while (dataReader1.Read())  ///DataReader的Read()方法用于读取数据,每执行一次该语句,DataReader就向前读取一行数据;如果遇到末尾,就返回False,否则为True
{
MessageBox.Show(dataReader1[0].ToString());
}
connection.Close();
  4.使用SqlDataAdapter数据适配器类访问数据库 ,注意:它既可以将数据库中数据传给数据集中的表,又可将数据集中的表传到数据库中。简言之,数据适配器类用于数据源与数据集间交换数据
  (链接语句略)
  connection1.Open();      ///打开数据库连接
  string sqlStr = "SELECT * FROM A";                                                                ///从A表中选择所有数据的SQL语句
  SqlDataAdapter dataAdapter1 = new dataAdapter(sqlStr, connection1);            ///构造名为dataAdapter1的数据适配器对象,            并指定连接对象connection1以及SELECT语句
  DataSet dataSet1 = new DataSet();                                                            ///构造名为dataSet1的数据集对象 dataAdapter1.Fill(dataSet1);
  ………………………………
  ///使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中,注意:SqlDataAdapter类中的Fill()方法和Update()方法可用于将数据填充到单个数据表或数据集中
  connection1.Close();
  示例6:将Student表中的数据全部查询出来
string connectionStr = "Data source=.;Initial Catalog=Student;
Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionStr);
string sqlstr = "select *from student";
connection.Open();
SqlDataAdapter dataAdapter1 = new SqlDataAdapter(sqlstr, connection);
DataSet dataSet1 = new DataSet();
dataAdapter1.Fill(dataSet1); ///使用SqlDataAdapter类中的Fill()方法将数据填充到数据集中,相当于程序的临时数据库
DataTable dt1 = dataSet1.Tables[0];
///获取数据集的第一张表
this.dataGridView1.DataSource = dt1;
connection.Close();

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
4天前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
109 75
|
19天前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
81 13
|
2月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
2月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
26天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
55 3
|
26天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
62 3
|
26天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
82 2
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
256 15