台灣最大程式設計社群網站
線上人數
1730
 
會員總數:246576
討論主題:190032
歡迎您免費加入會員
討論區列表 >> ASP.NET >> [NET]where='txCustomer.text'????
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[NET]where='txCustomer.text'????
價值 : 0 QP  點閱數:1672 回應數:4
樓主

sonic
初學者
45 12
34 17
發送站內信

想請教一下,原始碼會秀出一整個table的資料,然後
我把sub page_load改成sub submit,
然後("select * from CustomerTravel", myConnection)改成
("select * from CustomerTravel where customerID='txCustomer.text'", myConnection)
在<body>之下增加
   <asp:textbox id="txCustomer" runat=server />
  <asp:button id="btSubmit" text="Submit" onclick="submit" runat=server />
原本用意是希望可以藉由輸入customerID來設定條件(where.....)得到datagrid的資料
可是實作上,在輸入ID後,卻只得到一個空的table
請問是哪裡寫錯了,還是where不支援這種寫法啊




<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server">
   sub Page_Load(obj as Object, e as EventArgs) 
      'set up connection
      dim myConnection as new OleDbConnection _
         ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=c:\inetpub\wwwroot\final project\happytra.mdb")

      'open connection
      dim myCommand as new OleDbDataAdapter _
         ("select * from CustomerTravel", myConnection)

      'fill dataset
      dim ds as DataSet = new DataSet()
      myCommand.Fill(ds, "CustomerTravel")

      'select data view and bind to server control
      DataGrid1.DataSource = ds.Tables("CustomerTravel").DefaultView
      DataBind()
   end sub
   
   sub DataGrid1_ItemCommand(obj as object, e as _
      DataGridCommandEventArgs)
      DataGrid1.SelectedIndex = e.Item.ItemIndex
      DataBind()
   end sub
</script>
<html>
<body>
   <form runat="server">
      <asp:DataGrid id="DataGrid1" runat="server"
      BorderColor="black"
      GridLines="Vertical"
      cellpadding="4"
      cellspacing="0"
      width="450"
      Font-NameFont-Names="Arial"
      Font-Size="8pt"
      ShowFooter="True"
      HeaderStyle-BackColor="#cccc99"
      FooterStyle-BackColor="#cccc99"
      ItemStyle-BackColor="#ffffff"
      AlternatingItemStyle-Backcolor="#cccccc"
      AutoGenerateColumns="false">

      <Columns>

            <asp:TemplateColumn HeaderText="CustomerID">
                  <ItemTemplate>
                        <asp:Label id="Name" runat="server"
                              Text='<%# Container.DataItem("CustomerID") %>'/>
                  </ItemTemplate>
                              </asp:TemplateColumn>

            <asp:BoundColumn HeaderText="TravelRoute"
                  DataField="TravelRoute"/>

            <asp:BoundColumn HeaderText="Date" DataField="Date"/>

            <asp:BoundColumn HeaderText="EmployeeID"
                  DataField="employeeID" />

            <asp:BoundColumn HeaderText="Fee" DataField="fee" />


      </Columns>

</asp:DataGrid>

   </form>
   
</body>
</html>


本篇文章發表於2002-05-07 14:49
1樓
回應

sabcat
檢舉此回應
這樣做會得到空資料表並不意外
>>"select * from CustomerTravel where customerID='txCustomer.text'" 
這句的Where custromerID='txCustomer.text'己被限死..
別忘了在SQL裡 位於 '' 裡的是表示字串...因此它並不會去抓你的TextBox控制項進來比對

如果您的Command物件執意要如此宣告..那麼就請用Parameter的方式來宣告
亦或是其它人有不同的做法也請不吝指出~謝謝
本篇文章回覆於2002-05-07 15:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

sonic
檢舉此回應
那請問parameter該如何宣告呢
本篇文章回覆於2002-05-07 15:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

sabcat
檢舉此回應
不好意思..有點看錯..忽略了你最前面的說明
您提到您將Page_Load改為Sub Submit
那麼您可試看看將where customerID='txCustomer.text' 改成
where customerID='" & txCustomer.text & "'"
這樣應該可以運作
本篇文章回覆於2002-05-07 16:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

sonic
檢舉此回應
haha, it works now.
thanks
by the way,為何要加上'" &  &"'
因為我剛學aspx
還不是很懂
請指教
本篇文章回覆於2002-05-07 17:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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