仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 805|回复: 10
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之数据库开辟团体总结(ADO.NET小结)

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
实不相瞒,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[0].ToString(),myReader[1].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位有标记整数情势的[C#]
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();
}

中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。
简单生活 该用户已被删除
沙发
发表于 2015-1-19 14:49:11 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
活着的死人 该用户已被删除
板凳
发表于 2015-1-25 17:28:37 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
再现理想 该用户已被删除
地板
发表于 2015-2-3 12:09:25 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
因胸联盟 该用户已被删除
5#
发表于 2015-2-8 20:58:23 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
金色的骷髅 该用户已被删除
6#
发表于 2015-2-26 10:55:39 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
乐观 该用户已被删除
7#
发表于 2015-3-8 13:56:52 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
小女巫 该用户已被删除
8#
发表于 2015-3-22 19:09:36 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
爱飞 该用户已被删除
9#
发表于 2015-3-22 19:09:37 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
若相依 该用户已被删除
10#
发表于 2015-3-22 19:09:40 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
愤怒的大鸟 该用户已被删除
11#
发表于 2015-3-22 19:09:41 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 05:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表