asp.net新增一筆資料到資料庫 增加不能 求救



贊助商連結


頁 : [1] 2

rz600000
2004-12-28, 04:02 AM
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<Script Languate="VB" Runat="Server">
Sub Page_Load(sender As Object, e As Eventargs)
'使用 Connection 物件開啟資料連接
Dim objConn As New OleDbConnection()
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Grades.mdb")
objConn.Open()

'建立 DataAdapter 物件
Dim objCmd As New OleDbDataAdapter()

'指定 SelectCommand 屬性
objCmd.SelectCommand = New OleDbCommand("Select * From 成績單", objConn)

'指定 UpdateCommand 屬性及其參數
objCmd.UpdateCommand = New OleDbCommand()
objCmd.UpdateCommand.CommandText = "Update 成績單 Set 學號=?, " & _
"姓名=?, 會計=?, 統計=? Where 學號=?"
objCmd.UpdateCommand.Connection = objConn
objCmd.UpdateCommand.Parameters.Add("@學號", OleDbType.VarChar, 8, "學號")
objCmd.UpdateCommand.Parameters.Add("@姓名", OleDbType.VarChar, 4, "姓名")
objCmd.UpdateCommand.Parameters.Add("@會計", DbType.Byte, Nothing, "會計")
objCmd.UpdateCommand.Parameters.Add("@統計", DbType.Byte, Nothing, "統計")
objCmd.UpdateCommand.Parameters.Add("@舊學號", OleDbType.VarChar, 8, "學號")
objCmd.UpdateCommand.Parameters("@舊學號").SourceVersion = DataRowVersion.Original


'建立 DataSet 物件,並將 SelectCommand 的執行結果置入 DataSet 物件中
Dim DS As New DataSet()
objCmd.Fill(DS, "成績單")
objConn.Close()

'建立 myTable 為 DataTable 物件,且將 DataSet 物件的成績單資料表指定給 myTable
Dim myTable As DataTable = DS.Tables("成績單")



'新增資料列
Dim myRow As DataRow = myTable.NewRow()
myRow("學號") = "A8608011"
myRow("姓名") = "小丸子"
myRow("會計") = 95
myRow("統計") = 70
myTable.Rows.Add(myRow)

'將 DataSet 物件的資料更新到來源資料
objCmd.Update(DS, "成績單")
End Sub
</Script>

運作必須使用更新查詢。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤
的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.Data.OleDb.OleDbException: 運作必須使用更新查詢。


會出現以上的錯誤 拜託求救 或是我要刪 除資料也不行=.=+

贊助商連結


rz600000
2004-12-28, 04:22 AM
若改為刪除 也會出現
無法從特定的資料表中刪除。這種錯誤訊息

-Hero-
2004-12-28, 07:28 PM
你table的schema可以列出來看看嗎?

solong
2004-12-28, 08:25 PM
請你將access 的mdb 檔的維讀屬性取消,並把mdb檔所在的目錄的安全性,裡的"寫入"也要打勾 ;)

sean1976
2004-12-31, 08:29 PM
試試不要用DataAdapter

Dim strSQL As String = "Update 成績單 Set 學號=@A, 姓名=@B, 會計=@C, 統計=@D Where 學號=@E "

Dim conn As SqlConnection
conn = New SqlConnection(m_strConn)
conn.Open()

Dim cmd As SqlCommand = New SqlCommand(strSQL, Conn.OpenConnection)

cmd.CommandType = CommandType.Text

cmd.Parameters.Add("@A", SqlDbType.Int,16).Value = 90
cmd.Parameters.Add("@B", SqlDbType.Int,16).Value = 90
cmd.Parameters.Add("@C", SqlDbType.Int,16).Value = 90
cmd.Parameters.Add("@D", SqlDbType.Int,16).Value = 90
cmd.Parameters.Add("@E", SqlDbType.VarChar,50).Value = "10001"

cmd.ExecuteNonQuery()
cmd.Dispose()
Conn.CloseConnection()

shenghong
2005-08-08, 05:51 AM
請你將access 的mdb 檔的維讀屬性取消,並把mdb檔所在的目錄的安全性,裡的"寫入"也要打勾 ;)
想請問一下
如果在XP的IIS該如何設定呢?
沒看到類似Win2000 Server的使用者權限管理
把唯讀取消、IIS的mdb檔也設定寫入,還是沒有作用...
謝謝... :)

sean1976
2005-08-08, 02:28 PM
想請問一下
如果在XP的IIS該如何設定呢?
沒看到類似Win2000 Server的使用者權限管理
把唯讀取消、IIS的mdb檔也設定寫入,還是沒有作用...
謝謝... :)

檔案總管 > 工具 > 資料夾選項 > 檢視頁籤裡的 [使用簡易檔案共用(建議使用)] 不要打勾就可以了

shenghong
2005-08-09, 12:49 AM
非常謝謝sean1976大大...
修正Everyone的權限後
小弟我問題解決了...^^
也留一些找到資料給以後遇到這問題的人參考:
http://www.allenkuo.com/forum/viewthread.asp?mid=350&
http://www.huo.idv.tw/faq/update.htm

Keyword:"無值提供給一或多個必要參數"

JerryChen
2005-08-09, 01:37 AM
如果希望作業環境更安全,
建議只改ASPNET這個帳號的權限,
而不是Everyone。

shenghong
2005-08-09, 01:56 AM
如果希望作業環境更安全,
建議只改ASPNET這個帳號的權限,
而不是Everyone。
小弟我是使用XP Pro的IIS
但是沒有看到這個account
請問是否是IWAM呢?
謝謝... :)