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(); //实例化SqlConnectionconn.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); //带连接字符串实例化SqlConnectionconn.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,DELETEExecuteReader 返回DataReader对象ExecuteScalar 返回单个值,如执行COUNT(*)3、下面举一些例子,学习过程中要举一返三(1)SqlCommand()构造函数、ExecuteScalar方法,查询学生人数string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";//windows 用户连接数据库字串SqlConnection conn = new SqlConnection(connString); //带连接字符串实例化SqlConnectionconn.open();string SQLstring = "SELECT count(*) from Student";SqlCommand command = new SqlCommand();command.Connection = conn;mandText = SQLstring;int num = (int)command.ExecuteScalar(); //执行SQLsrting查询语句,返回学生人数,注意要进行数据转换(2)SqlCommand (String)构造函、ExecuteReader方法读取学生信息string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";//windows 用户连接数据库字串SqlConnection conn = new SqlConnection(connString); //带连接字符串实例化SqlConnectionconn.open();string strQuery = "SELECT StuName,Sex ,BirthDay FROM dbo.Student";SqlCommand command = new SqlCommand(strQuery);command.Connection = sqlConn;// 执行查询SqlDataReader dataReader = command.ExecuteReader();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); //带连接字符串实例化SqlConnectionconn.open();// strQuery字符串可以用insert 、updata、delete命令完成插改删功能。
string strQuery = "insert into student values(“01000061”,”20010005”,”张小明”,”男”,1982-01-01,”D053E238”);SqlCommand command = new SqlCommand(strQuery,connString);int logint=commnad.executNoQuery();if (logint>0)messagebox.show(“插入成功!”);elsemessagebox.show(“插入不成功!”);三、DataSet操作数据库DataSet类是中最核心的成员之一,也是各种开发基于.Net平台程序语言开发数据库应用程序最常接触的类。
在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存,所以在脱机状态下,也能对DataSet中的数据表进行操作。
1.创建一个DataSet对象a)可以指定一个数据集的名称b)如果不指定名称,则默认被设为"NewDataSet"DataSet 数据集对象= new DataSet("数据集的名称字符串");2.使用DataAdapter 对象填充数据集(1) 创建SqlDataAdapter 对象SqlDataAdapter 对象名= new SqlDataAdapter(查询用sql语句, 数据库连接);(2)填充DataSetDataAdapter对象. 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"]);但上述命令只对单表数据集更新方便,对多表数据集不能操作。