Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)delvpublished in(发表于) 2014/1/23 3:10:43 Asp.Net、Ado.net,数据库编程超级攻略_[Asp.Net教程]
Command对象中包含了提交给数据库系统的访问信息OleDbCommand与SqlCommand对象,它们的基本对象与操作方法是相同的,在此仅介绍OleDbCommand的用法,SqlCommand的用法类推即可。最常用初始化Command对象的方法是在建立Command实例中带入两个参数OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);strQuery为SQL语句或储存过程名,myConnection是建立的Connection对象实例Command对象主要的属性有Connection:CommandText:设置或获取Command对象使用的Connection对象实例CommandType:StoredProceduce、TableDirect、Text(标准SQL语句)Parameters:取得参数值集合ExecuteReader:执行CommandText指定的SQL语句或储存过程名,返回类型为DataReaderExecuteNonQuery:与ExecuteReader功能相同,只是返回值为执行SQL语句或储存过程受影响的记录行数DataReader--SqlDataReader、OleDbDataReaderFieldCount:显示当前操作记录的字段总和IsClosed:判断DataReader是否关闭Close:关闭DataReaderGetString:以String返回指定列中的值GetValue:以自身的类型返回指定列中的值GetValues:返回当前记录所有字段的集合Read:读下一条记录例:<% @ Page Language="C#" %><% @ Import Namespace="System.Data"%><% @ Import Namespace="System.Data.OleDb"%>-------------------------------------------<% @ Import Namespace="System.Data.SqlClient"%><% while(dr.Read()) ...{;}%> DataSet DataAdapterDataAdapter是与DataSet配套使用的OleDbDataAdapter my_adapter=new OleDbDataAdapter();-------------------------------------------------SqlDataAdapter my_sqladapter=new SqlDataAdapter();my_adapter.SelectCommand.Connection=my_conn;或my_adapter.UpdateCommand.Connection=my_conn;my_adapter.DeleteCommand.Connection=my_conn;my_adapter.InsertCommand.Connection=my_conn;如果需要执行Sql语句,那么还必须给相应的CommandText属性赋值。http://sucai.knowsky.com/my_adapter.SelectCommand.CommandText=strSelect;my_adapter.UpdateCommand.CommandText=strUpdate;my_adapter.InsertCommand.CommandText=strInsert;my_adapter.DeleteCommand.CommandText=strDelete;如果只是查询数据库,则可以建立DataAdapter实例时就完成上述工作OleDbDataAdapter MyAdapter=new OleDbDataAdapter(sql,my_conn);DataSet ds=new DataSet();OleDbConnection my_conn=new OleDbConnection(myconnstring);OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);my_adapter.fill(ds,"score");DataGrid score;score.DataSource=ds.Table["score"].Defaultview;score.DataBind();//InsertCommandDataRow dr=ds.Table["Score"].NewRow();dr["name"]=..
ds.Tables["Score"].Rows.Add(dr);//updateDataAdapter.Update(ds,"Score");//modifyDataRow dr=ds.Tables["Score"].Rows[0];dr["name"]=;//DeleteDataRow dr=ds.Talbes["Score"].Rows[0];dr.Delete();//注:OleDbConnection my_conn=new OleDbConnection(myconnstring);OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);OleDbCommandBuilder custCB=new OleDbCommandBuilder(my_adapter);//DataAdapter在数据发生改变时,并不能自动产生(Transact- SQL),所以一定要使用CommandBuilder,它能自动产生Sql语句,!就此一步RejectChanges是DataSet,DataTable,DataRow共有的方法使操作对象拒绝已经发生的改变,使数据复员if(DataSet.HasErrors)...{ DataSet.RejectChanges();}else...{ DataSet.AcceptChanges();}----------------------------------------------------------------------------------------------------------------------------------DataReader->DataTable public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader) ...{ /**//**//**////定义DataTable和模式 DataTable datatable = new DataTable(); DataTable schemaTable = dataReader.GetSchemaTable(); //导入一个数据表的表结构 try ...{ /**//**//**////动态添加表的数据列 foreach(DataRow myRow in schemaTable.Rows) ...{ DataColumn myDataColumn = new DataColumn(); myDataColumn.DataType = myRow.GetType(); myDataColumn.ColumnName = myRow[0].ToString(); datatable.Columns.Add(myDataColumn); } /**//**//**////添加表的数据 while(dataReader.Read()) ...{ DataRow myDataRow = datatable.NewRow(); for(int i=0;i ...{ myDataRow[i] = dataReader[i].ToString(); } datatable.Rows.Add(myDataRow); myDataRow = null; } schemaTable = null; /**//**//**////关闭数据读取器 dataReader.Close(); return datatable; } catch(Exception ex) ...{ /**//**//**////抛出类型转换错误 SystemError.SystemLog(ex.Message); throw new Exception(ex.Message,ex); } } }}
赞