ASP.NET网页编程之数据库开辟团体总结(ADO.NET小结)
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。一.用SqlConnection毗连SQLServer1..到场定名空间usingSystem.Data.SqlClient;
2.毗连数据库
SqlConnectionmyConnection=newSqlConnection();
myConnection.ConnectionString="userid=sa;password=sinofindb;initialcatalog=test;datasource=127.0.0.1;ConnectTimeout=30";
myConnection.Open();
改善(更通用)的办法:
stringMySqlConnection="userid=sa;password=sinofindb;Database=test;datasource=127.0.0.1;ConnectTimeout=30";
SqlConnectionmyConnection=newSqlConnection(MySqlConnection);
myConnection.Open();
二。用OleDbConnection毗连
1.到场定名空间
usingSystem.Data.OleDb;
2.毗连sqlserver
stringMySqlConnection="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=test;IntegratedSecurity=SSPI;";
SqlConnectionmyConnection=newSqlConnection(MySqlConnection);
myConnection.Open();
3.毗连Access(可经由过程创建.udl文件取得字符串)
stringMySqlConnection="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:db2000.mdb;
PersistSecurityInfo=False;
4.毗连Oracle(也可经由过程OracleConnection毗连)
stringMySqlConnection="Provider=MSDAORA;DataSource=db;userid=sa;password=sinofindb";
三.创立Command工具
1.SqlCommand机关函数
①初始化SqlCommand类的新实例。publicSqlCommand();
SqlCommandmyCommand=newSqlCommand();
②初始化具有查询文本的SqlCommand类的新实例。publicSqlCommand(string);
StringmySelectQuery="SELECT*FROMmindata";
SqlCommandmyCommand=newSqlCommand(mySelectQuery);
③初始化具有查询文本和SqlConnection的SqlCommand类实例。
PublicSqlCommand(string,SqlConnection);
StringmySelectQuery="SELECT*FROMmindata";
stringmyConnectString="userid=sa;password=;database=test;server=mySQLServer";
SqlConnectionmyConnection=newSqlConnection(myConnectString);
SqlCommandmyCommand=newSqlCommand(mySelectQuery,myConnection);
④初始化具有查询文本、SqlConnection和Transaction的SqlCommand类实例。
publicSqlCommand(string,SqlConnection,SqlTransaction);
SqlTransactionmyTrans=myConnection.BeginTransaction();
StringmySelectQuery="SELECT*FROMmindata";
stringmyConnectString="userid=sa;password=;database=test;server=mySQLServer";
SqlConnectionmyConnection=newSqlConnection(myConnectString);
SqlCommandmyCommand=newSqlCommand(mySelectQuery,myConnection,myTrans);
2.创建SqlCommand与SqlConnection的联系关系。
myCommand.Connection=myConnection;
大概:SqlCommandmyCommand=myConnection.CreateCommand;
3.设置SqlCommand的查询文本。
myCommand.CommandText="SELECT*FROMmindata";
大概第2种机关:SqlCommandmyCommand=newSqlCommand(mySelectQuery);
给SqlCommand工具供应两个查询字符串,每一个查询字符串会见分歧的表,前往分歧的了局集。
两个查询语句用分号分开。
4.实行命令。
ExecuteReader
前往一行或多行
ExecuteNonQuery
对Connection实行Transact-SQL语句并前往受影响的行数(int)
ExecuteScalar
前往单个值(如一个聚合值).前往了局会合第一行的第一列。疏忽分外的列或行
ExecuteXmlReader
将CommandText发送到Connection并天生一个XmlReader工具。
SqlDataReadermyReader=myCommand.ExecuteReader();
或SqlDataReadermyReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
while(myReader.Read())//轮回读取数据
{
Console.WriteLine(myReader.GetString(0));//猎取指定列的字符串情势的值
Console.WriteLine(myReader.GetValue(1));//猎取以本机格局暗示的指定列的值
}
CommandText="selectcount(*)asNumberOfRegionsfromregion";
Intcount=(int)myCommand.ExecuteScalar();
关于OleDbCommand工具的利用。
四.DataReader的利用
1.遍历了局集
while(myReader.Read())
Console.WriteLine(" {0} {1}",myReader.GetInt32(0),myReader.GetString(1));
myReader.Close();
2.利用序数索引器。
while(myReader.Read())
Console.WriteLine(" {0} {1}",myReader.ToString(),myReader.ToString());
myReader.Close();
3.利用列名索引器。
while(myReader.Read())
Console.WriteLine(" {0} {1}",myReader["code].ToString(),myReader["name"].ToString());
myReader.Close();
4.利用范例会见器。
publiccharGetChar(inti);猎取指定列的单个字符串情势的值
publicDateTimeGetDateTime(inti);猎取指定列的DateTime工具情势的值
publicshortGetInt16(inti);猎取指定列的16位有标记整数情势的
publicstringGetString(inti);猎取指定列的字符串情势的值
5.失掉列信息。
myReader.FieldCount猎取以后行中的列数
myReader.GetFieldType(序号)猎取是工具的数据范例的Type
myReader.GetDataTypeName(序号)猎取源数据范例的称号
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.创立SqlDataAdapter
初始化SqlDataAdapter类的新实例。
publicSqlDataAdapter();
将指定的SqlCommand作为SelectCommand属性,初始化SqlDataAdapter类的新实例。
publicSqlDataAdapter(SqlCommand);
用selectcommand字符串和SqlConnection工具初始化SqlDataAdapter类的新实例。
publicSqlDataAdapter(string,SqlConnection);
用selectcommand字符串和一个毗连字符串初始化SqlDataAdapter类的新实例。
publicSqlDataAdapter(string,string);
2.DataAdapter和SqlConnection,SqlCommand创建联系关系。
1.DataAdapter在机关参数时创建
2.SqlDataAdapteradapter=newSqlDataAdapter();
adapter.SelectCommand=newSqlCommand(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语句和CommandBehavior的数据源中的行。
protectedvirtualintFill(DataTable,IDbCommand,CommandBehavior);
六.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工具的数组,
①猎取一切DataRow工具的数组。
publicDataRow[]Select();
②按主键按次(如没有主键,则依照增加按次),猎取与选择前提相婚配的一切DataRow工具的数组。
publicDataRow[]Select(string);
③猎取依照指定的排序按次且与选择前提相婚配的一切DataRow工具的数组。
publicDataRow[]Select(string,string);
④猎取与排序按次中的选择器和指定的形态相婚配的一切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)
{
for(inti=0;i<myview.Table.Columns.Count;i++)
Console.Write(myrowview+" ");
Console.WriteLine();
}
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? 比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
页:
[1]