『壹』 學生成績查詢 C#ADO.NET資料庫訪問
publicstaticstringconstr=@"Provider=Microsoft.Jet.OleDb.4.0;DataSource=school1.mdb;";
using(OleDbConnectioncon=newOleDbConnection(constr))
{
con.Open();
stringsql="select*fromcsscore";
using(OleDbDataAdapteroda=newOleDbDataAdapter(sql,con))
{
DataTabledt=newDataTable();
oda.Fill(dt);
dataGridView1.DataSource=dt;
}
}
在工具箱拖一個datagridview控制項。用來顯示數據。
stringsql是查詢語句,你就改這個。
『貳』 ADO.NET操作資料庫SQL模糊查詢
在用@定義變數標准方法like @keyword然後在創建參數時:new SqlParameter("@keyword",keyword+"%")你上面寫的那個'@keyword%'這個是錯的首先@變數不能用單引號或者雙引號括起來,這樣就變字元串了而不是變數然後是那個%,這個要寫在你創建參數賦值的那個地方的,不然那個是無效的假如沒有單引號 而是@keyword%的話,這樣你在執行時它生成的代碼是'keyword變數的值'%這樣是無法得到你想要的數據的,那個%在單引號的范圍之外
『叄』 如何使用ado.net連接資料庫並將查詢結果呈現出來
首先在頁面上拖個數據控制項,如DataGridView,然後從資料庫中取出數據進行綁定。
部分代碼如下:
string cmdText="select * from 表名";
DataSet ds=new DataSet();
SqlDataAdapter ad =new SqlDataAdapter(conn,cmdText); //其中conn為SqlConnection對象
ad.Fill(ds);
DataGridView.DataSource=ds;
『肆』 ADO.NET 資料庫查詢記錄使用到的類和操作步驟
1.創建資料庫連接字元創
2.導入命名空間System.data.sqlcen...
3.jia創建SQLCONNECTION 對象 把鏈接字元創 放進去
4. 打開資料庫
5.聲明SQLcommand對象 括弧內放 執行命令的SQL語句 和connection對象
6command對象。方法執行相關命令
『伍』 ADO.NET操作資料庫SQL模糊查詢
string sql ="select top 10 * from books where title like '@keyword%' order by clicks desc";
改成:「string sql ="select top 10 * from books where title like '%keyword%' order by clicks desc"; 」
『陸』 Ado.net將資料庫查詢結果轉成一個動態對象
步驟如下:一、用有源ODBCDSN的方法和無源OLEDB的方法連接資料庫:1、無源OLEDB:stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=intels.mdb";2、有源ODBCDSN:stringstrConn="DataSource=intels";如果採用ADO.NET連接SQLServer或者Oracle,方法和VB中連接相應數據的連接字元串一致。
二、開始連接資料庫:ADOConnectionConn=newADOConnection(strConn);三、執行一個selectSQL查詢:stringstrSQL="Selectidfromtest";ADOCommandADOCmd=newADOCommand(conn,Conn);Conn.Open();ADODataReaderreader;ADOCmd.Execute(outreader);四、得到ADODataReader中包含的數據:先執行:reader.Read();然後就可以取得數值:reader["id"].ToString();依次類推。五、delete(刪除)語句,insert和update相同:strSQL="deletefromtestwhereid=』1』";//strSQL="insertintotestvalues(』1』)";//strSQL="updatetestsetid=』1』";ADOCommandADOCmd=newADOCommand(conn,Conn);Conn.Open();ADOCmd.Execute();
『柒』 ADO.NET資料庫查詢
關於Sql注入的基本概念經典的注入語句是' or 1=1--
單引號而截斷字元串,「or 1=1」的永真式的出現使得表的一些信息被暴露出來,如果sql語句是select * from 的話,可能你整個表的信息都會被讀取到,更嚴重的是,如果惡意使用都使用drop命令,那麼可能你的整個資料庫得全線崩潰。
當然,現在重點不是講sql注入的害處,而是說說如何最大限度的避免注入問題。
sql注入的存在在最大危害,是sql的執行語句沒有和控制語句分開,我們想要select一些東西,但用戶可能拼出' or 1=1甚至再加上delete/update/drop,後來是屬於控制語句了,所以要避免sql的注入,就必須把查詢語句與控制語句分開。
SqlParameter給我們提供了一個很好的類,有了它,我們可以不現拼接字元串,也可以不再擔心單引號帶來的慘劇,因為,這一切會有人來為我們完成的。
簡單的給個示例
傳統的查詢語句的sql可能為
string sql="select * from users where user_id='"+Request.QueryString["uid"]+"'";
很顯然,我們在這里拼接了字元串,這就給sql注入留下了可乘之機。
現在,我們要改寫這樣的語句,使用SqlParameter來做
SqlCommand SqlCmd = new SqlCommand(sql, SqlConn);
SqlParameter _userid = new SqlParameter("uid", SqlDbType.Int);
_userid.Value = Request.QueryString["u_id"];
SqlCmd.Parameters.Add(_userid);
這樣,我們可以保證外接參數能被正確的轉換,單引號這些危險的字元也會轉義了,不會再對庫造成威脅。
當然,這僅是一個示例而已,在真實的情況下,可能你還要對 Request.QueryString["u_id"]進行必要的檢測與分析,這樣才安全
所以,使用參數化的sql語句,是一種很好的做法,不過,我們也還有更好的辦法,那就是使用參數化的存儲過程,如果你有興趣,可以繼續探討。
----轉載