台灣最大程式設計社群網站
線上人數
950
 
會員總數:244810
討論主題:188843
歡迎您免費加入會員
討論區列表 >> ASP.NET >> [NET]怪怪的現象
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[NET]怪怪的現象
價值 : 0 QP  點閱數:2740 回應數:18

樓主

小青
初學者
324 100
1444 242
發送站內信

可以幫我看一下嗎  
不知為啥 只要加入 原價跟特價這兩個 就不能update
把原價特價 拿掉 就正常
這是什麼原因啊?

 Sub Updates(Sender As Object, E As DataListCommandEventArgs)
        Dim DS As DataSet
        Dim MyCommand As OleDbCommand
        Dim UpdateCmd As String = "UPDATE movie SET 片名 = @片名, 導演 = @導演, 演員 = @演員, 片長 = @片長, 級別 = @級別, 型式 = @型式, 原價 = @原價, 特價 = @特價 where ID = @ID"
        MyCommand = New OleDbCommand(UpdateCmd, MyConnection)
MyCommand.Parameters.Add(New OleDbParameter("@片名", OleDbType.VarChar))
        textbox0=e.Item.FindControl("textbox0")
        MyCommand.Parameters("@片名").Value = textbox0.Text
MyCommand.Parameters.Add(New OleDbParameter("@導演", OleDbType.VarChar))
        textbox1=e.Item.FindControl("textbox1")
        MyCommand.Parameters("@導演").Value = textbox1.Text
MyCommand.Parameters.Add(New OleDbParameter("@演員", OleDbType.VarChar))
        textbox2=e.Item.FindControl("textbox2")
        MyCommand.Parameters("@演員").Value = textbox2.Text
MyCommand.Parameters.Add(New OleDbParameter("@片長", OleDbType.VarChar))
        textbox3=e.Item.FindControl("textbox3")
        MyCommand.Parameters("@片長").Value = textbox3.Text
MyCommand.Parameters.Add(New OleDbParameter("@級別", OleDbType.VarChar))
        textbox4=e.Item.FindControl("textbox4")
        MyCommand.Parameters("@級別").Value = textbox4.Text
MyCommand.Parameters.Add(New OleDbParameter("@型式", OleDbType.VarChar))
textbox5=e.Item.FindControl("TextBox5")
        MyCommand.Parameters("@型式").Value = Textbox5.Text
MyCommand.Parameters.Add(New OleDbParameter("@id", OleDbType.VarChar))
        textbox111=e.Item.FindControl("textbox111")
        MyCommand.Parameters("@id").Value = textbox111.Text
MyCommand.Parameters.Add(New OleDbParameter("@原價", OleDbType.VarChar))
textbox6=e.Item.FindControl("TextBox6")
        MyCommand.Parameters("@原價").Value = Textbox6.Text
MyCommand.Parameters.Add(New OleDbParameter("@特價", OleDbType.VarChar))
textbox7=e.Item.FindControl("TextBox7")
        MyCommand.Parameters("@特價").Value = Textbox7.Text
 MyCommand.Connection.Open()
 MyCommand.ExecuteNonQuery()
 MyCommand.Connection.Close()
 DataList1.EditItemIndex = -1
 BindGrid()
    End Sub
  Sub BindGrid() 
        Dim MyDataSet As DataSet
        Dim MyCommand As OleDbDataAdapter
        MyCommand = new OleDbDataAdapter("select * from movie", MyConnection)
        MyDataSet = new DataSet()
        MyCommand.Fill(MyDataSet, "movie")
        DataList1.DataSource=MyDataSet
DataList1.DataMember="movie"
        DataList1.DataBind()
    End Sub

本篇文章發表於2002-05-06 21:53
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

小青
檢舉此回應
這是 原價跟特價textbox的寫法
 <td align="right" width="56" height="7">
        <p align="left"><font size="2">演員:</font></td>
        <td width="277" height="7"><asp:textbox size="40" id="textbox2" runat="server" text='<%# Container.DataItem("演員") %>'/>
        </td>
     <td align="right" width="49" height="7">
        <p align="left"><font size="2">原價:</font></td>
        <td width="355" height="7">
        <asp:Textbox id="textbox6" size="40" runat="server"  text='<%# Container.DataItem("原價") %>'/>
</td>
     </tr>
     <tr> 

        <td align="right" width="56" height="4">
        <p align="left"><font size="2">片長:</font></td>
        <td width="277" height="4"><asp:textbox id="textbox3" runat="server" text='<%# Container.DataItem("片長") %>'/>
        </td>
     <td align="right" width="49" height="4">
        <p align="left"><font size="2">特價:</font></td>
        <td width="355" height="4">
        <asp:Textbox id="textbox7" size="40" runat="server"  text='<%# Container.DataItem("特價") %>'/>
</td>
本篇文章回覆於2002-05-06 21:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

sabcat
檢舉此回應
我不清楚這是否有關係...
因為以前在寫時也沒注意到這樣的問題

請問您的原價與特價在資料表中是否為整數型態?
若是...試著將原價與特價的OleDbType設為Integer看看
本篇文章回覆於2002-05-06 22:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小青
檢舉此回應
我是以文字 的方式存取

我改過成數字 改成你那樣的宣告 他說
行 44: MyCommand.Parameters.Add(New OleDbParameter("@片名", OleDbType.VarChar))
VarChar 不是 'Integer' 的成員。 
這該怎麼處理
本篇文章回覆於2002-05-06 23:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

小青
檢舉此回應
給他push 一下
本篇文章回覆於2002-05-08 00:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

sabcat
檢舉此回應
請問您資料表中原先的欄位型態定義為何?
原先程式中的Parameter所定義的資料型態為何?(印象中都是定義為VarChar)

那麼您依我上一篇的回覆修改後..
資料表的欄位型態又變為何?
程式中的Parameter型態又為何?
是否請提供一下這些資訊...
因為由您上一篇的回覆來看..怎感覺好像是您把資料表中的片名改為Integer型態
而程式中依然使用VarChar~
本篇文章回覆於2002-05-08 00:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

小青
檢舉此回應
我資料表原價特價都是"文字"的型態

我加入你說的 將dim OleDbType as integer
我在程式上 都每沒去做改變
我將資料表原價特價改成"數字(長整數)"型態 
結果都依樣
出現
'VarChar' 不是 'Integer' 的成員。



本篇文章回覆於2002-05-08 17:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

sabcat
檢舉此回應
那看來應該不是資料型態的問題了..
再次請問..不依在下所提方式修改前所產生的錯誤訊息為?
本篇文章回覆於2002-05-08 18:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

小青
檢舉此回應
再沒做任何修改時
當你 再原價特價處修改資料 按更新時 
沒有任何錯誤訊息
但是在近來看 沒有做任何改變

我試過改變其他項目  但是也是依樣 沒有任何update動作(程式有跑)

若將原價特價 移掉  則update功能一切正常
本篇文章回覆於2002-05-08 19:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

sabcat
檢舉此回應
那麼試看看在執行ExecuteNonQuery之前.
先將CommandText給Response出來做一下debug
本篇文章回覆於2002-05-08 19:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

小青
檢舉此回應
不好意思 我不懂你的意思 你是說在
 MyCommand.ExecuteNonQuery()
之前加上
response.write (MyCommand.Parameters("@特價").Value )
......

我試了   
他跑出來的值 都是我改的值 
不知為啥 一送到sql語法那就......
我把sql的部分 再貼一次  給你看看
Dim UpdateCmd As String = "UPDATE movie SET 片名 = @片名, 導演 = @導演, 演員 = @演員, 片長 = @片長, 級別 = @級別, 型式 = @型式, 原價 = @原價, 特價 = @特價 where ID = @ID"

本篇文章回覆於2002-05-08 20:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

小青
檢舉此回應
-.-一下就被擠到好後面
本篇文章回覆於2002-05-09 19:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

小青
檢舉此回應
試過了 許多方法 都還是不行@_@
本篇文章回覆於2002-05-12 19:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

sabcat
檢舉此回應
確實是蠻怪的..
怎看..程式都沒問題@@~
就是不知道為啥會這樣~
看來我也遇到瓶頸了:p~ 哈
本篇文章回覆於2002-05-13 19:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

Dolittle
檢舉此回應
提供個小意見
有沒有可能是中文欄位的原因呢?
資料庫都是外國人發明的
So 盡量不要以中文命名
試試看英文吧
本篇文章回覆於2002-05-13 19:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

sabcat
檢舉此回應
雖然也曾想過中文欄位問題
但是根據他所提供的資訊來看...
似乎不可能是因為中文欄位名稱的關係

在下猜想的原因..比較可能是值沒抓取到
以致更新的where條件找不到~所以導致沒有執行更新
本篇文章回覆於2002-05-13 19:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

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