数据库开发个人总结.docx
《数据库开发个人总结.docx》由会员分享,可在线阅读,更多相关《数据库开发个人总结.docx(8页珍藏版)》请在冰豆网上搜索。
数据库开发个人总结
数据库开发个人总结(小结)
一。
用sqlconnection连接sqlserver
1加入命名空间
usingsystem.data.sqlclient;
2.连接数据库
sqlconnectionmyconnection=newsqlconnection();
myconnection.connectionstring=user
id=sa;password=sinofindb;initial
catalog=test;data
source=127.0.0.1;connecttimeout=30;
myconnection.open();
改进(更通用)的方法:
string
mysqlconnection=user
id=sa;password=sinofindb;database
source=127.0.0.1;connecttimeout=30;
=test;data
sqlconnectionmyconnection
(mysqlconnection);
=newsqlconnection
myconnection.open();
二。
用oledbconnection连接
1.加入命名空间
usingsystem.data.oledb;
2.连接sqlserver
stringmysqlconnection=provider=sqloledb;data
security=sspi;;
sqlconnectionmyconnection=newsqlconnection
(mysqlconnection);
myconnection.open();
3.连接access(可通过建立。
udl文件获得字符串)
stringmysqlconnection=provider=microsoft.jet.oledb.4.0;datasource=c:
db20XX.mdb;
persistsecurityinfo=false;
4.连接oracle(也可通过oracleconnection连接)
stringmysqlconnection=provider=msdaora;data
source=db;userid=sa;password=sinofindb;
三。
创建mand对象
1.sqlmand构造函数
1初始化sqlmand类的新实例。
publicsqlmand();sqlmandmymand=newsqlmand();
2初始化具有查询文本的sqlmand类的新实例。
publicsqlmand(string);
stringmyselectquery=select*frommindata;
sqlmandmymand=newsqlmand(myselectquery);
3初始化具有查询文本和sqlconnection的sqlmand
类实例
publicsqlmand(string,sqlconnection);
stringmyselectquery=select*frommindata;
stringmyconnectstring=user
id=sa;password=;database=test;server=mysqlserver;
sqlconnectionmyconnection=newsqlconnection
(myconnectstring);
sqlmandmymand=newsqlmand
(myselectquery,myconnection);
4初始化具有查询文本、sqlconnection和transaction的sqlmand类实例。
publicsqlmand(string,sqlconnection,
sqltransaction);
sqltransactionmytrans=
myconnection.begintransaction();
stringmyselectquery=select*frommindata;
stringmyconnectstring=user
id=sa;password=;database=test;server=mysqlserver;
sqlconnectionmyconnection=newsqlconnection
(myconnectstring);
sqlmandmymand=newsqlmand
(myselectquery,myconnection,mytrans);
2.建立sqlmand与sqlconnection的关联。
mymand.connection=myconnection;
或者:
sqlmandmymand=myconnection.createmand;
3.设置sqlmand的查询文本。
mymand.mandtext=select*frommindata;
或者第2种构造:
sqlmandmymand=newsqlmand(myselectquery);
给sqlmand对象提供两个查询字符串,每个查询字符串访问不同的表,返回不同的结果集。
两个查询语句用分号分隔。
4.执行命令。
executereader
返回一行或多行
executenonquery
对connection执行transact-sql语句并返回受影
响的行数(int)
executescalar
返回单个值(如一个聚合值)。
返回结果集中行的列。
忽略额外的列或行
executexmlreader
sqldatareadermyreader=mymand.executereader();
或sqldatareadermyreader=mymand.executereader
(mandbehavior.closeconnection);
while(myreader.read())//循环读取数据
{
console.writeline(myreader.getstring(0));//
获取指定列的字符串形式的值
console.writeline(myreader.getvalue
(1));//
获取以本机格式表示的指定列的值
}
mandtext=selectcount(*)asnumberofregionsfromregion;
intcount=(int)mymand.executescalar();
关于oledbmand对象的使用。
四。
datareader的使用
1.遍历结果集
while(myreader.read())
console.writeline({0}{1},myreader.getint32(0),
myreader.getstring
(1));
myreader.close();
2.使用序数索引器。
console.writeline({0}{1},myreader[0].tostring
(),myreader[1].tostring());
myreader.close();
3.使用列名索引器。
while(myreader.read())
({0}{1},
console.writeline
myreader[code].tostring(),myreader[name].tostring
());
myreader.close();
4.使用类型访问器。
publicchargetchar(inti);获取指定列的单个
字符串形式的值
publicdatetimegetdatetime(inti);获取指定
列的datetime对象形式的值
publicshortgetint16(inti);获取指定列的16
位有符号整数形式的[c#]
publicstringgetstring
字符串形式的值
(inti);获取指定列的
5.得到列信息。
myreader.fieldcount获取当前行中的列数
型的type
的名称
myreader.getname(序号)获取指定列的名称myreader.getordinal(序号)在给定列名称的情况下获取列序号
6.得到数据表的信息。
myreader.getschematable()返回一个datatable
7.操作多个结果集。
myreader.nextresult()使数据读取器前进到下一个
结果集
do
{
while(myreader.read())
console.writeline({0}{1},myreader.getint32(0),myreader.getstring
(1));
}
while(myreader.nextresult());
五。
dataadapter
1.仓【J建sqldataadapter
初始化sqldataadapter类的新实例。
publicsqldataadapter();
将指定的sqlmand作为selectmand属性,初始化
sqldataadapter类的新实例。
2.dataadapter和sqlconnection,sqlmand建立关联。
l.dataadapter在构造参数时建立
2.sqldataadapteradapter=newsqldataadapter();adapter.selectmand=newsqlmand(query,conn);
3.dataadapter.fill()方法。
在dataset中添加或刷新行以匹配使用dataset名
称的数据源中的行,并创建一个名为table的datatable.
publicoverrideintfill(dataset);
在dataset中添加或刷新行以匹配使用dataset和
datatable名称的数据源中的行。
publicintfill(dataset,string);
在dataset的指定范围中添加或刷新行以匹配使用
dataset和datatable名称的数据源中的行。
publicintfill
(dataset,int,int,string
在datatable中添加或刷新行以匹配使用datatable
名称的数据源中的行。
publicintfill(datatable);
在datatable中添加或刷新行以匹配使用指定datatable和idatareader名称的数据源中的行。
protectedvirtualintfill(datatable,idatareader);
在datatable中添加或刷新行以匹配使用datatable
名称、指定的sqlselect语句和mandbehavior的数据源中的行。
protectedvirtualintfill(datatable,idbmand,
mandbehavior);
六。
datatable
类
七。
datacolumn
类
八。
datarow类
九。
dataset类
1.创建dataset
对象
初始化dataset
类的新实例。
publicdataset
();
用给定名称初始化
dataset类的新实例。
publicdataset
(string);
2.用dataadapter
填充dataset
datasetmyds=newdataset();
adapter.fill(myds)
adapter.fill(myds,表名);用一个表去填充dataset.
十。
datatablecollection类:
表示dataset的表的集合。
datatablecollectiondtc=ds.tables;
datatabletable=dtc[表名];
stringstrexpr=id>5;
stringstrsort=namedesc;
datarow[]foundrows=customertable.select
(strexpr,strsort,);
进行动态的筛选和排序。
datatable.select()方法:
获取datarow对象的数组,
1获取所有datarow对象的数组。
publicdatarow[]select();
2按主键顺序(如没有主键,则按照添加顺序),获取
与筛选条件相匹配的所有datarow对象的数组。
publicdatarow[]select(string);
3
获取按照指定的排序顺序且与筛选条件相匹配的所
有datarow对象的数组。
4获取与排序顺序中的筛选器以及指定的状态相匹配的所有datarow对象的数组。
publicdatarow[]select(string,string,dataviewrowstate);
十一。
dataview类:
是datatable内容的动态视图。
1.创建对象初始化dataview类的新实例。
publicdataview();
用指定的datatable初始化dataview类的新实例。
publicdataview(datatable);
用指定的datatable、rowfilter、sort和dataviewrowstate初始化dataview类的新实例。
publicdataview(datatable,string,string,dataviewrowstate);
dataviewmyview=newdataview
(ds.tables[suppliers],id>5,namedesc,dataviewrowstate.currentrows);
2.得到dataview的行数据。
foreach(datarowviewmyrowviewinmyview)
{
+);
console.writeline();
}