C#对 SQL 数据库操作总结

2018/03/06 14:59
阅读数 14

                                                  C#对 SQL 数据库操作总结

       要对数据库进行增删查改操作,先要连接数据库,然后通过 command 类中相应方法或 Dataset 数据集中相应方法来
完成对数据库的有关操作

一、创建数据库连接(SqlConnection 类)

步骤:(1)定义连接字符串

         (2)创建 SqlConnection 对象

1. 两种用户登录连接字串(Windwos 用户,SQL 数据库用户)

string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";         //windows 用户 连接数据库字符串

string connString ="Data Source=HP;Initial Catalog=xk;User ID=SA;PassWord=";          //SQL 用户 连接字符串

2.创建 SqlConnection 对象

     方法一:

     SqlConnection conn = new SqlConnection(connString);        //带 连接字符串  实例化SqlConnection

     方法二:

     SqlConnection conn = new SqlConnection();                        //实例化 SqlConnection

     conn.ConnectionString=connString;                                    //把 连接字符串 赋给 conn 对象的 ConnectionString 属性

3.打开连接

     conn.open();

4.关闭连接

     conn.close();

5.创建连接例子:

     string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";     //windows用户  连接数据库字符串

     SqlConnection conn = new SqlConnection(connString);                                                //带连接字符串  实例化SqlConnection

     conn.open();

二、Sqlcommand 类操作数据库

使用 Command 步骤:

(1)创建数据库连接

(2)定义 SQL 语句

(3)创建 Command 对象

(4)执行命令

1.command 类的构造方法

command 类的常用构造方法有下面三种,使用不同的构造方法,创建对象的内容也有所不同

  构造方法                                                                                                                                     说明

SqlCommand()                                                                                                                 不带参数的构造函数

SqlCommand(string commandText)                                                                                 带命令字串的构造函数

SqlCommand(string commandText,SqlConnection mySqlConnection)                           带命令字串连接字串的构造函数

2.command 类的主要成员

               属 性                                 说 明

Connection                       Command 对象使用的数据库连接

CommandType                 设 置 如 何 解 释 CommandText 值 ( 即 设 置 CommandText 所 代 表 的 含 义 )。 有 三 个 选 项

                                                    (StoredProcedure 存储过程名,TableDirect 表名,Text SQL 文本命令),默认为 Text。

CommandText                  执行的 SQL 语句

 

               方法                                                                            说明

ExecuteNonQuery                                     执行不返回行的语句,如 SELECT,UPDATE,DELETE

ExecuteReader                                          返回 DataReader 对象

ExecuteScalar                                            返回单个值,如执行 COUNT(*)      

  

3.下面举一些例子,学习过程中要举一返三

(1)SqlCommand()构造函数、ExecuteScalar 方法,查询学生人数

1. string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";    //windows用户  连接数据库字串

2. SqlConnection conn = new SqlConnection(connString);                //带连接字符串实例化 SqlConnection

3.conn.open();

4.string SQLstring = "SELECT count(*) from Student";

5.SqlCommand command = new SqlCommand();                             //创建 command 对象,SqlCommand() 不带参数的构造函数

6.command.Connection = conn;

7.command.CommandText = SQLstring;                                         //将SQLstring赋给CommandText;

8.int num = (int)command.ExecuteScalar();                                   //执行 SQLsrting 查询语句,返回学生人数,注意要进行数据转换

 

      1、2、3:创建数据库连接;   4:定义 SQL 语句;  5、6、7:创建 Command 对象   8:执行命令

 

(2) SqlCommand (String)构造函数、ExecuteReader 方法读取学生信息

string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";          //windows用户  连接数据库字串

SqlConnection conn = new SqlConnection(connString);                                                      //带连接字符串实例化 SqlConnection

conn.open();

string strQuery = "SELECT StuName,Sex ,BirthDay FROM dbo.Student";

SqlCommand command = new SqlCommand(strQuery);                                                     //带命令字串的构造函数

command.Connection = sqlConn;

 

               // 执行查询

SqlDataReader dataReader = command.ExecuteReader()                                              //ExecuteReader()方法  返回 DataReader 对象

string StuName = “”;                          // 班级名称

string Sex=“”;

string BirthDay=“”;

 

               // 循环读出所有的年级名,并添加到年级列表框中

while (dataReader.Read())

{

StuName= (string)dataReader[0];//读取第一单元的值

Sex = (string)dataReader[1]; //读取第二单元的值

BirthDay=(string)dataReader[2]; //读取第三单元的值

cboClass.Items.Add(className);

}

dataReader.Close(); 

(3) 使用 SqlCommand (String, SqlConnection)构造函数、ExecuteNonQuery 命令,插入修改删除记录
string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";         //windows用户  连接数据库字串
SqlConnection conn = new SqlConnection(connString);                                                     //带连接字符串实例化 SqlConnection
conn.open();


                 // strQuery 字符串可以用 insert 、updata、delete 命令完成插改删功能。
 
string strQuery = "insert into student values(“01000061”,”20010005”,”张小明”,”男”,1982-01-01,”D053E238”);
SqlCommand command = new SqlCommand(strQuery,connString);                              //strQuery:命令字串;connString:连接字串
int logint=commnad.executNoQuery();
if (logint>0)
 messagebox.show(“插入成功!”);

else
 messagebox.show(“插入不成功!”);

三、DataSet 操作数据库

    DataSet 类是 ADO.NET 中最核心的成员之一,也是各种开发基于.Net 平台程序语言开发数据库应用程序最常接触的 类。在从数据库完成数据抽取后,

DataSet 就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存, 所以在脱机状态下,也能对 DataSet 中的数据表进行操作。

1. 创建一个 DataSet 对象

a) 可以指定一个数据集的名称

b) 如果不指定名称,则默认被设为"NewDataSet"

DataSet 数据集对象 = new DataSet("数据集的名称字符串");

2. 使用 DataAdapter 对象填充数据集

(1) 创建 SqlDataAdapter 对象

SqlDataAdapter 对象名 = new SqlDataAdapter(查询用 sql 语句, 数据库连接);

(2) 填充 DataSet

DataAdapter 对象. Fill(数据集对象, "数据表名称字符串");

(3). 具体例子

string cnnstring = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";

SqlConnection sqlcnn = new SqlConnection(cnnstring);

string SQLsting = "select * from student ";

da1 = new SqlDataAdapter(SQLsting, cnnstring);

ds1= new DataSet();

da1.Fill(ds1, "student");

注:sqlcnn 对象不需要 open 打开,直接由 da1Fill 方法填充。

3. DataSet 数据集数据的编辑(增删改)

   DataSet 数据集一般是与数据控件绑定使用,来达到显示、修改、插入、删除数据记录。但只是对 DataSet 数据集做了插、删、改。并没有对数据库中的数据进行插、

删、改,可以通过 DataAdapter 对象操作 DataSet 实现更新数据库。

   DataAdapter 是通过其 Update 方法实现以 DataSet 中数据来更新数据库的。当 DataSet 实例中包含数据发生更改后,此时调用 Update 方法,DataAdapter 将分析已

作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE),并以此命令来更新数据库中的数据。如果 DataSet 中的 DataTable 是映射到单个数据库表或从单个

数据库表生成,则可以利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。

      SqlCommandBuilder mycbd = new SqlCommandBuilder(da1); //自动生成插删改命令

      da1.Update(ds1.Tables["student"]);

但上述命令只对单表数据集更新方便,对多表数据集不能操作。对于多表数据集的插、删、改操作,用 sqlcommand类来完成(见二、Sqlcommand 类操作数据库。)

4. DataSet 结构

 


   


  




 

 


   
 
 
 
 

 
 

 
 
 
 


 







 
 
 

                  
          
              
              
              
             

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部