|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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();
}
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。 |
|