台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
715
 
會員總數:230361
接案會員:6772
文章總數:2320
討論主題:176141
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 判斷輸入資料與資料庫重複的問題

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
判斷輸入資料與資料庫重複的問題
價值 : 20 QP  點閱數:1889 回應數:12

點圖分享到Plurk吧!
樓主

傑兄
門外漢
0 24
296 35
發送站內信

各位大大好~~~
我想寫一個判斷的程式,來檢查使用者輸入的資料,是否與資料庫的資料重複!
我的程式碼如下:
Dim to1tbx As TextBox = Me.FormView1.FindControl("to1TextBox")
Dim tq1tbx As TextBox = Me.FormView1.FindControl("tq1TextBox")
Dim t1button2 As Button = Me.FormView1.FindControl("t1Button2")
Dim dv As New Data.DataView
Me.SqlDataSource3.SelectParameters.Clear()
Me.SqlDataSource3.SelectCommand = "select count(salen) from sale where (salen like '%' + " & to1tbx.Text & " + '%')"
dv = Me.SqlDataSource3.Select(New DataSourceSelectArguments) <==錯誤訊息所在
If dv.Count > 0 Then
Me.ClientScript.RegisterStartupScript(Me.GetType, "Alert", "window.alert('左邊下拉式選單,已經有您輸入的資料可選擇喔!');", True)
.
.
.
End If
當我執行看看的時候,我在to1tbx.Text 裡輸入文魁兩個字,接著按下t1button2
結果出現:無效的資料行名稱 '文魁'。這樣的訊息
該如何解決呢?
本篇文章發表於2006-12-13 22:07
什麼是iT Power資訊報 2010年藍色小舖認證專家風雲榜完全名單
1樓
作者回應

傑兄
檢舉此回應
補充一下問題,我的想法是,我寫了一個下拉式選單,與SqlDataSource3資料連結,可以選擇出版商,如文魁、華泰、滄海..等,可讓使用者選擇,可是當沒有他所要的,便可點選<其它>按鈕,按下去就出現上面所宣告的,to1tbx.Text (輸入所要新增的出版商)及t1button2(確認送出按鈕)。而當使用者按下t1button2,我想寫上面所述敘的想法,驗證使用者輸入的出版商,是否資料庫已經有該筆資料了,如果有就顯現彈跳視窗告訴他。如果沒有,就將該筆資料新增至資料庫,使用者便可從下拉式選單去選它的資料。
上面salen就是資料庫裡的出版商欄位。
如不懂我的想法,請留訊息告訴我~~~
懇請各位大大協助~~~


本篇文章回覆於2006-12-13 22:42
--未登入的會員無法查看對方簽名檔--
2樓
回應

達可達
檢舉此回應
Me.SqlDataSource3.SelectCommand = "select count(salen) from sale where (salen like '%' + " & to1tbx.Text & " + '%')"
to1tbx.Text 好像少了加單引號
你檢查看看 :)



本篇文章回覆於2006-12-13 22:53
--未登入的會員無法查看對方簽名檔--
3樓
回應

達可達
檢舉此回應
也可以這樣寫.. :)
Me.SqlDataSource3.SelectCommand = "select count(salen) from sale where (salen like '%" & to1tbx.Text & "%')"



本篇文章回覆於2006-12-13 22:55
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

傑兄
檢舉此回應
達可達~~~我試過了,還是會出現問題~~~~
我有試過改成這樣:
Me.SqlDataSource3.SelectCommand = "SELECT COUNT(salen) AS Expr1 FROM sale WHERE (salen LIKE '%" & to1tbx.Text & "%')"
結果出現下面這段訊息:
DataBinding: 'System.Data.DataRowView' 沒有包含名為 'salen' 的屬性。
是什麼意思呢?


本篇文章回覆於2006-12-14 20:50
--未登入的會員無法查看對方簽名檔--
5樓
回應

飛天南門
檢舉此回應
我先說明我的觀念
如果要判斷是否跟資料庫有一樣的資料
不能用LIKE 應該用"="才對
如果資料庫有一筆資料是 "ABCDEF"
可是使用者輸入 CDE 執行SQL 後還是會回傳一筆甚至
多筆資料如果資料為 "我有CDE這三個字" 那就有兩筆
那到底使用者輸入的資料是否有重複呢?
至於SQL語法要判斷是否存在我會這寫




本篇文章回覆於2006-12-14 21:59
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

傑兄
檢舉此回應
飛天南門您的意思我了解~~~~
但我的想法是,假如使用者他想選擇一個名為文魁的出版商,可是我的下拉式選單裡有該選項文魁可讓他選,
結果使用者沒看清楚,點選其它按鈕來新增出版商,結果他輸入文魁資訊來做新增。
可是其實文魁與文魁資訊是一樣的,所以我想在,當使用者按下確認新增紐時,寫一個判斷,
判斷他所輸入的資料,是否與資料庫目前有的相類似,但一直寫不出來,一直出現問題。
不知能否能這樣做呢?飛天南門大大~~~


本篇文章回覆於2006-12-14 22:37
--未登入的會員無法查看對方簽名檔--
7樓
回應

飛天南門
檢舉此回應
已經是下拉式選單(理應不能輸入資料),那使用者為何還可以輸入資料呢?




本篇文章回覆於2006-12-14 23:03
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

傑兄
檢舉此回應
因為下拉式選單裡的資料可能沒有使用者要的,所以它可以點選其他按鈕來輸入。
我資料庫裡內建的資料只有20個書商,是比較有名的,但台灣有很多書商,我不可能全部自行輸入。
所以內建20個有名的、比較大的書商,來讓使用者選擇。如他要其他的話,就讓他自行輸入。
但我想寫割判斷,判斷使用者所輸入的資料,是否與資料庫目前有相類似的。
就如我上一個的回應。
飛天南門大大~~~不知我這樣解釋清楚嗎?麻煩您了~~~不好意思^0^


本篇文章回覆於2006-12-15 20:20
--未登入的會員無法查看對方簽名檔--
9樓
回應

飛天南門
檢舉此回應
你試試這樣的語法行不行:
(不過你要先確定你的資料庫是否有 "salen" ← 這個欄位)





本篇文章回覆於2006-12-15 22:02
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

傑兄
檢舉此回應
飛天南門大大~~~會出現
SQLException 接近 'Count' 之處的語法不正確。
的訊息!


本篇文章回覆於2006-12-15 23:58
--未登入的會員無法查看對方簽名檔--
11樓
最有價值解答

飛天南門
檢舉此回應




本篇文章回覆於2006-12-16 00:33
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

傑兄
檢舉此回應
飛天南門大大~~~~可以了,謝謝您!


本篇文章回覆於2006-12-16 00:45
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.