none
請問各位大大有個vb.net 2010的問題請教 RRS feed

  • 問題

  • 請問各位大大有個vb.net 2010的問題請教

    問題是這樣:原語法如下

    sqlstr = "delete from EIS.dbo.EIS_出貨品管倉管未審 where left(出貨日期,7) = '" & Replace(TextBox1.Text, " ", "") & "'"

    但我的出貨日期為2013/08/01 但我在 TextBox1.Text 我輸入2013/08 --->因為TextBox1.Text很多資料要用

    所以我無法改變textbox1.text的格式。所以我如果要用like來寫要怎麼改寫呢?

    sqlstr = "delete from EIS.dbo.EIS_出貨品管倉管未審 where 出貨日期 like = '" & Replace(TextBox1.Text, " ", "") & "'"

    也就是TextBox1.Text 加'%'要怎麼寫才對.

    謝謝各位大大

    2013年9月17日 上午 08:59

解答

  • 1. 你可以選用 YEAR(), MONTH(), DAY() 等函數。

    2. 改掉你現在的作法,因為惡意使用者可以用惡意指令把你的資料庫全刪了... (SQL Injection)


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年9月17日 上午 09:08
    版主
  • 你是Access还是SQL数据库?

    Access: Like '*内容*'

    SQL:Like '%内容%'


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年9月17日 上午 09:17

所有回覆

  • 1. 你可以選用 YEAR(), MONTH(), DAY() 等函數。

    2. 改掉你現在的作法,因為惡意使用者可以用惡意指令把你的資料庫全刪了... (SQL Injection)


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年9月17日 上午 09:08
    版主
  • 你是Access还是SQL数据库?

    Access: Like '*内容*'

    SQL:Like '%内容%'


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年9月17日 上午 09:17
  • 親愛的小朱大大:

          因為我那是Window form. 所以那只是我一個人在操作而已

    所以請教您有沒有辦法在textbox1.text 加上類似%

    讓它變成 出貨日期 like 'Textbox1.text%'

    謝謝您

    2013年9月17日 上午 09:19
  • 日期的话如果是某个范围,尝试考虑between 日期 and 日期2

    或者使用>= 和 <=


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年9月17日 上午 09:24
  • Dim s As String=String.Format("{0}%",TextBox1.Text)

    執行完畢後s的內容值就是TextBox1%

    2013年9月18日 上午 01:58
  • 不管是不是只有自己一個人用,養成習慣後才不會以後寫出有漏洞的程式碼。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年9月18日 上午 02:05
    版主
  • Hello,

    如果是 MS-SQL,
    而且 [出貨日期] 的資料型別是 date,
    而且確定 TextBox1.Text 固定是 yyyy/MM 格式, 如 2013/08, 一定/保證/打死不會有例外,
    而且是要刪除當月份所有資料的話,
    可以試試看下列撈的資料是不是符合您需求,

    sqlstr = "SELECT 出貨日期, LEFT(出貨日期,7) FROM EIS.dbo.EIS_出貨品管倉管未審 WHERE LEFT(出貨日期,7)='" & Replace(TextBox1.Text, "/", "-") & "'"

    若沒錯的話, 再將 Where 子句套用到您的 Delete 命令中.

    而改為參數化命令以防止 SQL Injection 的方式,
    您之前的提問中曾經問過,也有前輩回答,應該難不倒您.

    2013年9月24日 上午 07:47