台灣最大程式設計社群網站
線上人數
1302
 
會員總數:246133
討論主題:189712
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 關於迴圈控制多個textbox 寫入SQL 資料表 同一欄位
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於迴圈控制多個textbox 寫入SQL 資料表 同一欄位
價值 : 20 QP  點閱數:2054 回應數:3
樓主

abhee
門外漢
0 2
28 0
發送站內信

最近遇到一個難題
ex我有一個資料表其中一個欄位是姓名,
我設了10個textbox讓使用者輸入
按下按鈕後判斷是否有值
有值就輸入到這張表的這個欄位裡

我就這樣寫

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button1.DataBinding
Dim conn As SqlConnection = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|ME.mdf;Integrated Security=True;User Instance=true ")

Dim cmd As SqlCommand
Dim i As Integer
conn.Open()
For i = 1 To 9
cmd = New SqlCommand("insert into 學生 (姓名) values (@姓名)", conn)

cmd.Parameters.Add("@姓名", SqlDbType.NVarChar, 50).Value = Me.Controls.Item("TextBox" & i.ToString())
cmd.ExecuteNonQuery()
Next
conn.Close()
conn.Dispose()
End Sub

但是執行後 他說
輸入字串格式不正確。及[InvalidCastException: 從字串 "Textbox1" 至型別 'Integer' 的轉換是無效的。]

請問有人可以指點我有關迴圈控制TEXTBOX應該要怎麼做嗎?

先謝謝各位了~

本篇文章發表於2011-11-30 05:37
1樓
最有價值解答

Allen
捐贈 VP 給 Allen 檢舉此回應
Me.Controls.Item(這裡面是放數字,而您是放字串,所以才error吧)
找到TextBox,可以用FindControl("Textbox" & i), 將它轉換成TextBox可以用CType(),
這是被問過很多次的問題,應該可以google到才對
本篇文章回覆於2011-11-30 08:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

MIS2000 Lab
檢舉此回應
樓上 Allen 是正確解答

推薦 連續的流水號
搭配上述的程式,可以作很多用途喔∼

例如:
http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/14/3986.aspx

這個範例就用到類似的作法
本篇文章回覆於2011-11-30 17:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

阿偉
檢舉此回應
依然發生錯誤
錯誤訊息:
接近 ',' 之處的語法不正確。

我在想是
cmd.Parameters.Add("@TB001", SqlDbType.VarChar, 20).Value = TB1.Text
這句有問題,但我不知道如何解決,有確認資料庫型態是VARCHAR 20 ....謝謝




本篇文章回覆於2020-04-17 17:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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