1. è·åæ°æ®çæ¹å¼
[1]DataReader 为å¨çº¿æä½æ°æ®ï¼ DataReaderä¼ä¸ç´å ç¨SqlConnectionè¿æ¥ï¼å¨å
¶è·å¾æ°æ®è¿ç¨ä¸å
¶å®æä½ä¸å¯ä»¥å使ç¨SqlConnectionè¿æ¥å¯¹è±¡ã
代ç å¦ä¸:
while(datareader.read())
{
..............
}
dataview.datasource=datareader;
dataview.databind();
[2]DataSet为离线æä½æ°æ®ï¼DataSetä¼å°æ°æ®ä¸æ¬¡æ§è¯»å
¥å
åï¼ç¶åæå¼è¿æ¥ï¼è¿æ¶å
¶å®æä½å°±å¯ä»¥ä½¿ç¨SqlConnectionè¿æ¥å¯¹è±¡ã
åå°ä»£ç å¦ä¸:
public string test = "";
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds=new DataSet();//è¿éæ¯ä½ çæ°æ®ï¼æå°±ä¸åäºããããtest = "<table>";
for (int i = 0; i < ds.Tables[0].Rows; i++)
{
test+="<tr><td>"+ds.Tables[0].Rows[i]["ä½ è¦çå段"].ToString()+"</td></tr>"ãããã}
test+="</table>";
}
页é¢ä»£ç å¦ä¸:
<form id="form1" runat="server">
<%=test %></form>
ç±äºDataReaderä¸æ¬¡åªè¯»åä¸è¡æ°æ®ï¼æ以å ç¨å
åè¾å°ãä½DataReader为åªè¿ä¸åªè¯»çï¼ä¹å°±æ¯åªè½åæ¹ååå读åï¼å¦æä½ æ³å头å»è¯»åä¸ä¸æ¡æ°æ®æ¯ä¸å
许çï¼å¹¶ä¸ä¸å
许å
¶ä¿®æ¹æ°æ®ã
ç±äºDataSetä¸æ¬¡æ§è¯»åæææ°æ®ï¼æ以æ¯è¾æ¶èèµæºï¼ä½ä¹æé«äºçµæ´»æ§ï¼å¨æå¼æ°æ®åºè¿æ¥æ
åµä¸ä½ å¯ä»¥å¯¹æ°æ®è¿è¡ä»»ä½å¢å æ¹æ¥ï¼æç
§ä»»æç顺åºè¯»åæ°æ®ï¼å¹¶å¯ä»¥å°å
¶ååå°æ°æ®åºã
æä¸ç¹éè¦æ³¨æï¼DataReaderä¸æ¬¡è¯»åä¸è¡å¹¶ä¸æå³çè¿æ¶å¨æ°æ®åºä¸çæ°æ®è¢«ä¿®æ¹ï¼å¯ä»¥è¯»å°æ°çæ°æ®ï¼è¿æ¯æ°æ®åºå±é¢çä¿æ¤.
2ï¼è·åæ°æ®çæºå¶
DataReaderæ¯éè¿IDbCommand.ExecuteReaderæ¥è¯»åæ°æ®ã
DataSetåæ¯éè¿DbDataAdapter.Fillæ¥å¡«å
æ°æ®ã
æ以DataReaderå¨è·åæ°æ®æ¶ä¸è½å
³éè¿æ¥ãèDataSetåå¯ä»¥ï¼å 为DbDataAdapterå·²ç»å°æ°æ®è¯»åå°åºç¨ç¨åºæå¡å¨ä¸ï¼æ以å¨ä½¿ç¨DataReaderæ¶ä¸å®è¦æ³¨æï¼åæ¶å
³éè¿æ¥ã
3ï¼å
¶å®åºå«
DataReader读åé度快äºDataSetã
DataReaderæ¯æ°æ®æä¾è
ç±»ï¼DataSetæ¯ä¸è¬æ§ç±»ï¼åå©äºDbDataAdapteræ¥å¡«å
æ°æ®ã
å 为DataSetæ¯ç¦»çº¿æä½æ°æ®ï¼æ以å¨äºå¡ä¸ä½¿ç¨éæ¶è¦æ³¨æï¼å 为DataSetå¡«å
æ°æ®åä¼æå¼è¿æ¥ï¼ä¹å°±ä¼éæ¾éã
4.使ç¨DataReaderå¯ä»¥æé«æ§è¡æçï¼æ两ç§æ¹å¼å¯ä»¥æé«ä»£ç çæ§è½ï¼ä¸ç§æ¯åºäºåºå·çæ¥æ¾ï¼ä¸ä¸ªæ¯ä½¿ç¨éå½çGetæ¹æ³æ¥æ¥æ¾ã
å 为æ¥è¯¢åºæ¥çç»æä¸è¬é½ä¸ä¼æ¹åï¼é¤éå次æ¹å¨æ¥è¯¢è¯å¥ï¼å æ¤å¯ä»¥éè¿å®ä½åçä½ç½®æ¥æ¥æ¾è®°å½ãç¨è¿ç§æ¹æ³æä¸ä¸ªé®é¢ï¼å°±æ¯å¯è½ç¥éä¸åçå称èä¸ç¥éå ¶æå¨çä½ç½®ï¼è¿ä¸ªé®é¢ç解å³æ¹æ¡æ¯éè¿è°ç¨DataReader 对象çGetOrdinal()æ¹æ³ï¼æ¤æ¹æ³æ¥æ¶ä¸ä¸ªåå并è¿åæ¤ååæå¨çåå·ãä¾ï¼
代ç å¦ä¸:
int id = reader.GetOrdinal("CategoryName");while (reader.Read())
{
Response.Write(reader.GetInt32(0).ToString() + " " + reader.GetString(1).ToString() + "<br />");
reader.Close();
}
DataReaderçGetInt32()åGetString()éè¿æ¥æ¶ä¸ä¸ªåå·æ¥è¿åä¸ä¸ªåçå¼ï¼è¿ä¸¤ç§æ¯æ常ç¨çï¼å
¶ä¸è¿æå¾å¤å
¶å®çç±»åã
注æï¼
DataReader对象å¨è°ç¨å ¶ Close() æ¹æ³å ³é DataReader 对象ï¼ç¶åè°ç¨ SqlConnection 对象ç Close æ¹æ³å ³éä¸æ°æ®åºçè¿æ¥ï¼å¦æå¨æ²¡æå ³éä¹ååéæ°æå¼ç¬¬äºä¸ªè¿æ¥ï¼åä¼äº§çä¸æ¡å¼å¸¸ä¿¡æ¯ï¼å¦ï¼å¹¶åé®é¢ã使ç¨å®SqlDataReaderåï¼å¯ä»¥å¨ç¨åºä¸æ¾ç¤ºçè°ç¨ æ°æ®åºè¿æ¥å¯¹è±¡ç Close() æ¹æ³å ³éè¿æ¥ï¼ä¹å¯ä»¥å¨è°ç¨Command对象çExecuteReaderæ¹æ³æ¶ä¼ é CommandBehavior.CloseConnection è¿ä¸ªæ举åéï¼è¿æ ·å¨è°ç¨SqlDataReaderç Close æ¹æ³æ¶ä¼èªå¨å ³éæ°æ®åºè¿æ¥ã
//æªå¼å
³éè¿æ¥
public SysFunction GetModelById(string id)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConStr"].ToString());
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction WHERE FunctionId =" + id, conn);
SqlDataReader dataReader = cmd.ExecuteReader();
SysFunction model = new SysFunction(); while (dataReader.Read())
{
model.FunctionName = dataReader["FunctionName"].ToString();
model.FunctionCode = dataReader["FunctionCode"].ToString();
}
dataReader.Close();
dataReader.Dispose(); string drState = dataReader.IsClosed.ToString(); //True
string connState = conn.State.ToString(); //Open
return model;
}
//è°ç¨Connection 对象ç Close() æ¹æ³æ¾å¼å
³éè¿æ¥
public SysFunction GetModelById(string id)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConStr"].ToString());
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction WHERE FunctionId =" + id, conn);
SqlDataReader dataReader = cmd.ExecuteReader();
SysFunction model = new SysFunction(); while (dataReader.Read())
{
model.FunctionName = dataReader["FunctionName"].ToString();
model.FunctionCode = dataReader["FunctionCode"].ToString();
}
dataReader.Close();
dataReader.Dispose();
conn.Close(); //æ¾å¼å
³éè¿æ¥
string drState = dataReader.IsClosed.ToString(); //True
string connState = conn.State.ToString(); //Close
return model;
}
//è°ç¨Command 对象ç ExecuteReader() æ¹æ³æ¶ä¼ é CommandBehavior.CloseConnection åæ°
public SysFunction GetModelById(string id)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConStr"].ToString());
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM SysFunction WHERE FunctionId =" + id, conn);
//æ§è¡è¯¥cmdæ¶ï¼å¦æå
³éå
³èç DataReader 对象ï¼åå
³èç Connection 对象ä¹å°å
³é
SqlDataReader dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
SysFunction model = new SysFunction(); while (dataReader.Read())
{
model.FunctionName = dataReader["FunctionName"].ToString();
model.FunctionCode = dataReader["FunctionCode"].ToString();
}
dataReader.Close();
dataReader.Dispose(); string drState = dataReader.IsClosed.ToString(); //True
string connState = conn.State.ToString(); //Close
return model;
}