ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:22.39KB ,
资源ID:18963226      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18963226.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#操作SQL经典文库Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#操作SQL经典文库Word格式文档下载.docx

1、 +this.dbPassword.Text + try m_con = new SqlConnection(ConnectionString); m_con.Open(); MessageBox.Show(数据库连接成功!); flag=true; catch数据库连接不成功! flag=false; return flag; (一)、c#连接SQL数据库代码:=只是一个简单的例子 public DataTable Read() DataTable dt =new DataTable();/新建表 dt.Columns.Add(col_1/新建表中的列col_2 string Connect

2、ionString =data source=localhost;initial catalog=pubs;user id=sa;password=sa SqlConnection Conn= new SqlConnection(ConnectionString); if (Conn.State=ConnectionState.Open) Conn.Close(); Conn.ConnectionString=ConnectionString; Conn.Open(); try SqlCommand cmd=new SqlCommand(Select * from tab_name,Conn)

3、; SqlDataReader myReader =cmd.ExecuteReader();/执行SQL语句的真正查询了 int a=0; int b=0;/用来接收已经查询出来的字段 while (myReader.Read() 每次循环查到的一行 如果有N行就循环N次而已 DataRow dr =dt.NewRow();/每循环一次新建一行 dr0 =myReader.GetInt32(0).ToString(); 表示接收第一个字段(string型) dr1 =myReader.GetInt32(1).ToString(); dt.Rows.Add(dr);/每次循环把dr加进去 myR

4、eader.Close(); catch(Exception ex) MessageBox.Show(ex.Message.ToString(); return dt; (二)、 关于Command对象 (SqlCommand有两种方法各有优点) /只用于查询 其实可以用于多记录查询 两个SQL语句连起来 用 myReader.NextResult() 即可 (A)SqlCommand cmd =new SqlCommand(SqlText,con);/这是读数据 此要和 SqlDataReader连用 再和ExecuteReader或ExecuteScalar连用. new 这个是用来读数据

5、的 就用DataReader 来接 这句等同于下面的三句 (B) /这个不用于查询 用于执行T_SQL增删改等等 SqlCommand cmd =con.CreateCommand(); cmd.CommandTest=Create table tab_name (name varchar(20),password varchar(20) cmd.ExecuteNonQuery(); *说明 :关于SqlCommand用法有ExecuteNonQuery、ExecuteReader,ExecuteScalar三种其中ExecuteReader(所有查询),ExecuteScalar(首行首列查

6、询) ExecuteNonQuery为执行T-SQL语句但是不建议查询 如果一个类有多个SQL语句要执行用(B)ExecuteNonQuery三句 但是ExecuteNonQuery自动执行最靠近它的那句CommandTest(每次只执行一句) 如果一个类中只有一个SQL语句要执行用(A)即可 *说明: (A)A与ExecuteReader,ExecuteScalar相匹配 (B)B三句的与ExecuteNonQuery相匹配 (三)、关于数据读取器 SqlDataReader 对象 (其中SqlDataReader是和SqlCommand cmd =new SqlCommand(SqlTex

7、t,con)它连用的) 如果只想读取和显示数据 则只需使用数据读取器 SqlDataReader即可 但要处理数据然后更新数据库,就需要用数据集DataSet和适配器 SqlDataAdaper SqlDataReader reader =new SqlDataReader(); (A)实例: (B):GetSchemaTable方法 返回一个已填充的DataTable实例 (可以一次读出完整表的内容) DataTable schema =reader.GetSchemaTable(); 用它可以把数据库中查询出的结果集以表的形式得到完整的传给schema表 就可以通过DataTable的Ro

8、ws属性检索行集,通过DataTable 的Columns属性检索列集(Rows属性可用于给表添加新行或者从表中删除行, Columns属性可用于添加列或者删除现有的列) 实例:/查询出的结果集以表的形式得到完整的传给schema表 foreach(DataRow row in schema.Rows) /这时相当于对schema表进行操作了 foreach(DataColumn col in schema.Columns) Console.WriteLine(col.ColumnName + = + rowcol); Console.WriteLine(= (C): reader.NextR

9、esult() 使用数据读取器处理多个结果集 string sql_1=select * from tab_1 string sql_2= select * from tab_2/这里一定要有个空格才可以 因为当两个SQL语句连接时要用空格分开 string sql =sql_1 + sql_2; SqlCommand cmd =new SqlCommand(sql,con);/执行两个或多个SQL语句的联合查询 SqlDataReader reader =cmd.ExecuteReader();/这时有多个结果集 do while(reader.Read()/读取一个结果集的所有内容0:1,

10、reader0,reader1); Console.WriteLine(.PadLeft(60,=); while(reader.NextResult();/循环读下个结果集 *补充:如果想判断当SqlDataReader没有读出结果时要做的处理方法: 首先要走 while(reader.Read()/读取一个结果集的所有内容 Console.WriteLine( 中的reader.Read();/必须要走这一步 如果想判断当没有读出结果时 就必须在While(reader.Read()之后 if(reader.HasRows=false)/判断如果没有读出结果 MessageBox.Show

11、(要查询的结果不存在! 这是没有读出结果时 如果读出结果了 那就直接走while(reader.Read()里面了就不走if()里面了 其实如果用到了DataTable 也可以用if(dt.Rows.count0)也可以的SqlDataAdapter (四)、SqlDataAdapter 数据集和数据适配器 DataSet 和 SqlDataAdapter 知识点: SqlDataAdapter da =new SqlDataAdapter(); (1)da.Fill(); (2)da.SelectComand=new SqlCommand(sqlText,con); (3)DataTable

12、 dt=new DataTable(); dt.Select(where条件,升降序); (4) 填充数据集有两种方法: :使用数据适配器从XML文档中读取数据 4.1) da.SelectCommand =new SqlCommand(sqlText,con); DataSet ds =new DataSet(); da.Fill(ds,tab_name/Fill方法内部使用数据读取器访问表模式和数据,然后使用他们填充数据集 /相当于执行SQL语句后把结果集取出后赋给DataSet中的tab_name表。 4.2) 数据集的筛选和排序:例子 static void Main(string a

13、rgs) string ConnectionString =initial catalog=northwind;user id =sa;password=sa; string sql_1=select * from customers string sql_2= select * from products where unitprice 10/注意当第二句连接时要有个空格 string sql = sql_1+sql_2;/两条SQL语句拼接 SqlConnection con =new SqlConnection(ConnectionString); if (con.State=Conne

14、ctionState.Open) con.Close(); con.Open(); SqlDataAdapter da=new SqlDataAdapter();/A da.SelectCommand=new SqlCommand(sql,con);/B /其中A和B两句合并相当于:SqlDataAdapter da=new SqlDataAdapter(sql,con);这一句 DataSet ds=new DataSet(); da.Fill(ds,customers DataTableCollection dtc =ds.Tables;/通过这句把DataSet中的所有表都给了Table

15、表集合Results frm Customers table:CompanyName.PadRight(20) + ContactName.PadLeft(23) + n /以下两句是筛选条件 string fl =country=Germany/where 条件 string srt =companyname asc /降序 /下面是知识点 数据集的筛选条件 foreach(DataRow row in dtc.Select(fl,srt)/这是用法 /dtc说明:dtc表集合中的customers表 .Select() 就是筛选条件 Console.WriteLine(0t1,row.To

16、String().PadRight(25),row);n-Results form Products table:ProductNameUnitPrice.PadLeft(21) + foreach(DataRow row in dtc1.Rows)productnameunitprice Console.ReadLine(); catch(Exception ex)Error:+ ex); finally 4.3) 使用DataView 其实DataView 的功能4.2)数据集都可以实现 所以一般不常用 DatView 是DataTable内容的动态表示,与SQL视图一样,他不保存数据 下

17、面一句就是把dt表中的记录有赋给了DataView dv 然后对dv进行操作 DataView有自己的动态方法 DataView dv =new DataView(dt,country, DataViewRowState.CurrentRows); 例子: static void Main(string args)data source =localhost;initial catalog =northwind; string sqlText=select contactname,country from customers SqlDataAdapter da =new SqlDataAdap

18、ter(sqlText,con); /da.SelectCommand =new SqlCommand(sqlText,con);/填充给DataSet中的Customeres表 DataTable dt=ds.Tables; /下面一句就是把dt表中的记录有赋给了DataView dv 然后对dv进行操作 DataView有自己的动态方法 DataView dv =new DataView(dt, /其中第一个参数是DataTale,第二个是对DataTable内容进行筛选的筛选器,第三个是排序,最后一个参数指定要在视图中包含的行的类型 foreach(DataRowView drv in

19、dv) for(int i=0;idv.Table.Columns.Count;i+) Console.Write(drvi + t Console.WriteLine(); Console.ReadLine(); catch (Exception ex) + ex); 4.4)修改数据集中的记录 其实这个4.4)单独是没有意义的 应该是4.5以后将更新保存到数据库源 说明:对数据集所做的变化不会自动保存到数据库中,为了把这些变化保存到数据库中,需要再次连接数据库,显示完成更新 static void Main() string ConnetionString= string qry=sele

20、ct * from employees where country=UK string udp=update employees set city=city where employeeid=employeeid SqlConnection con =new SqlConnection(ConnetionString); SqlDataAdapter da= new SqlDataAdapter(); da.SelectCommand =new SqlCommand(qry,con); employees /以下更改了表的信息 dt.ColumnsFirstName.AllowDBNull=true; dt.Rows0city=Wilmington /以下为表添加了新行 DataRow newRow =dt.NewRow(); newRowfirstnamelilastnameyongtitleofcourtesyhahadalianUK dt.Rows.Add(newRow); /可以显示更新后的信息 这时只更新了数据集 但是没有更新数据库 foreach(DataRow row in dt.Rows)012

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1