以下是學習中小結,若有幸被大俠看到,文章中的錯誤還望不吝賜教。。。。
我們提供的服務有:成都網站設計、成都網站制作、微信公眾號開發、網站優化、網站認證、永昌ssl等。為上1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的永昌網站制作公司C#中使用 SQL語句
首先注意兩點:
第一、語句的構造是否正確, 第二、與程序交互時,使用到的一些變量
1. 在sql語句中。 如果某個字段的數據類型不為數字形式,那么在sql語句中,如條件判斷...都需要用到(兩個單引號)將數據 括起來; 例如:
表[student] id(自動編號) uID(學號) uName(學生姓名)
-->查詢(名字是李世民的學生信息) :
select uID, uName FROM student WHERE uName = '李世民'
2.在C#中,string 類型的變量需要使用(兩個雙引號) “” 括起來
結合以上兩點、在c#中拼湊SQL查詢語句你就可以這樣使用
string str_Sql = " SELECT uID, uName FROM student WHERE uName ='李世民'";
---------------------------------------------------------------------------
1.首先把你的SQL語句構造好。 不要先加變量
string str_Sql = " SELECT uID, uName FROM student WHERE uName = ' "+ +" ' " ;
2.在需要使用變量的位置,用(兩個雙引號)將這句話分開。
現在它只不過是字符串而已;
在這其中,你可以看出來,where后加入的兩個雙引號,一個是用來結束,與最開頭的雙引號對應。
---->在c#語句中。使用兩個雙引號 將字符串括起來。注意一定要成對
---->連接兩個字符串所有的操作符是 + 號
---------------------------------------------------------
string str_Sql =" SELECT uID, uName FROM student WHERE uName = ' "+變量 +" ' " ;
總結:雙引號" 和加號 + 是C#中的定界符.
兩個雙引號之中的字符都被程序認定為字符串不參與任何計算或是程序的執行。僅僅是字符串。而加號是連接兩個字符串的定界符。
比如 string str_Print = "我是" + "天下第一";
變量 str_Print的值為 我是天下第一
單引號'是SQL語句中對數據類型為字符類型的字段使用的nvarchar ntext nchar 。。。
----------------------------------------------------------------------------------------
//some 查詢語句
string sql= string.Format("select * from UserInfo where Uname='{0}'and UPwd='{1}'and UState='{2}'", this.txtName.Text.Trim(),this.txtPwd.Text.Trim(),num);
------------------
//定義sql語句
string sql="select * from BookInfo where BookType='"+booktype+"' "+cbo1+" BookName like '%" +bookname+"%' "+cbo2+" BookContent like '%"+bookcontent+"%'";
---------------------------------
string sql=string.Format(insert into BookInfo values('{0}' , '{1}' ,'{2}' ,'{3}' ,'{4}' ,'{5}' ,'{6}' ", booktype,bookauthor,bookpic,bookprice,bookcontent,bookissue );
-------------------------------------------------------
(1)拼接產生SQL語句:
以下是代碼片段: string sql = "insert into czyb(yhm,mm,qx) values('" + txtName.Text + "','" + txtPassword.Text + "','" + cmbPriority.Text + "')"; OleDbCommand cmd = new OleDbCommand(sql, conn); |
這種方法寫法比較復雜,且安全性低,容易遭受SQL注入***。
(2)用string.Format方法:
以下是代碼片段: string sql = string.Format("insert into czyb(yhm,mm,qx) values('{0}','{1}','{2}')", txtName.Text, txtPassword.Text, cmbPriority.Text); |
(3)用參數化SQL語句:
以下是代碼片段: string sql="insert into czyb(yhm,mm,qx) values (@yhm,@mm,@qx)"; OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = sql; cmd.Parameters.AddWithValue("@yhm", txtName.Text); cmd.Parameters.AddWithValue("@mm", txtPassword.Text); cmd.Parameters.AddWithValue("@qx", cmbPriority.Text); cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); |
代碼結構清楚,對于不支持存儲過程的數據庫(如Access),推薦采用本方法。
(4)如果數據庫支持存儲過程(如SQL Server),可以調用存儲過程執行SQL:
以下是代碼片段: SqlConnection conn = new SqlConnection(txtConn); SqlCommand cmd = new SqlCommand("SearchContact", conn); //存儲過程名稱為SearchContact cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@name", SqlDbType.VarChar, 50); //傳入參數 cmd.Parameters["@name"].Value = txtName.Text.Trim(); |
由于存儲過程是數據庫預編譯的,執行效率高,推薦采用。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:C#項目實例中SQL查詢語句使用-創新互聯
地址分享:http://vcdvsql.cn/article18/didigp.html
成都網站建設公司_創新互聯,為您提供響應式網站、靜態網站、網頁設計公司、品牌網站建設、做網站、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯