executequery返回類型 ExecuteScalar()方法返回值類型是整形嗎?
ExecuteScalar()方法返回值類型是整形嗎?ExecuteScalar()方法的作用是:執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。所有其他的列和行將被忽略。1、返回的是一個obje
ExecuteScalar()方法返回值類型是整形嗎?
ExecuteScalar()方法的作用是:執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。所有其他的列和行將被忽略。
1、返回的是一個object類型,也就是說是所有數(shù)據(jù)類型的基類,可根據(jù)select所得的第一列的數(shù)據(jù)類型轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)類型例:stringstrConn="DataSource=(local)InitialCatalog=paperManageIntegratedSecurity=True"SQLConnectionobjConn=newSQLconnection(strConn)SQLCommandobjCMD=newSQLCommand(strSQL,objConn)objectobjResult=objCMD.ExecuteScalar()//或者stringresult=objCMD.ExecuteScalar().toString()
2、當(dāng)select語句無記錄返回時,ExecuteScalar()返回NULL值,無法再將null值賦給任何對象或者變量,否則出現(xiàn)異常:System.NullReferenceException:未將對象引用設(shè)置到對象的實(shí)例例:若select查詢無返回記錄,以下代碼則會拋出異常:try{stringresult=objCMD.ExecuteScalar().toString()}catch(SQLExceptionee){MessageBox.show(ee.toString())}解決方法是先判斷ExecuteScalar()是否為null,再進(jìn)行相應(yīng)的處理。例:if(objCMD.ExecuteScalar()==null){//為空時的操作}else{result=objCMD.ExecuteScalar().ToString().Trim()}使用ExecuteScalar()方法從數(shù)據(jù)庫中檢索單個值(例如一個聚合值)。典型的ExecuteScalar()查詢可以采用類似于下面的C#示例的格式:cmd.CommandText="SELECTCOUNT(*)FROMdbo.region"Int32count=(Int32)cmd.ExecuteScalar()