您当前的位置:首页 > 网络编程 > Net编程 > 正文

Asp.Net、Ado.net 数据库编程超级攻略

【字体大小: 2009-03-31 16:56 来源:未知 作者:龙耀 

以下为引用的内容:

HTML控件是ASP.NET所提供的控件(亦称为Server控件),是在服务器端执行的组件,可以产生标准的HTML文件。一般说来,标准的HTML标签无法动态控制其属性、使用方法、接收事件,必须使用其他的程序语言来控制标签,这对于使用ASP程序设计来说很不方便,而且会使ASP程序比较杂乱。ASP.NET在这方面开发了新的技术,即将HTML标签对象化,使程序(如Visual Basic.NET、C#…)可以直接控制HTML标签,对象化后的HTML标签称之为HTML控件。
  HTTP控件比HTML标签多了两个属性:

  · ID属性:表示程序以此属性来控制和操作对象,对象名称不可以重复。

  · Runat属性:表示对象在服务器端执行,所有的HTML控件都必须加上这个属性。如果HTML控件对象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语句或储存过程名,返回类型为DataReader
ExecuteNonQuery:与ExecuteReader功能相同,只是返回值为执行SQL语句或储存过程受影响的记录行数
DataReader--SqlDataReader、OleDbDataReader
FieldCount:显示当前操作记录的字段总和
IsClosed:判断DataReader是否关闭
Close:关闭DataReader
GetString:以String返回指定列中的值
GetValue:以自身的类型返回指定列中的值
GetValues:返回当前记录所有字段的集合
Read:读下一条记录
例:
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data"%>
<% @ Import Namespace="System.Data.OleDb"%>
-------------------------------------------
<% @ Import Namespace="System.Data.SqlClient"%>
<Script Language="c#" Runat="Server">
OleDbDataReader dr;

String myconnstring="Provider=Microsoft.Jet.OLEDB.4.0; DataSource="+Server.MapPath(".")+"..\mdb";
string sql=".."
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbCommand my_comm=new OleDbCommand(sql,my_conn);
my_comm.Connection.Open();
dr=my_comm.ExecuteReader();
//DataGrid dg
dg.DataSource=dr
dg.DataBind();
</Script>
<head>
<% while(dr.Read())
 ...{;}
%>
</head>
DataSet DataAdapter
DataAdapter是与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();
//InsertCommand
DataRow dr=ds.Table["Score"].NewRow();
dr["name"]=..

ds.Tables["Score"].Rows.Add(dr);
//update
DataAdapter.Update(ds,"Score");
//modify
DataRow dr=ds.Tables["Score"].Rows[0];
dr["name"]=;
//Delete
DataRow 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<schemaTable.Rows.Count;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);
   }  
  }
 }
}

 


    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    【责任编辑:绝口不提】 标签:

    更多相关内容

    最新评论 查看所有评论
    发表评论 查看所有评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名:密码:验证码: