台灣最大程式設計社群網站
線上人數
1527
 
會員總數:243325
討論主題:188102
歡迎您免費加入會員
討論區列表 >> C# >> C# 寫入資料庫裡
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C# 寫入資料庫裡
價值 : 50 QP  點閱數:378 回應數:17

樓主

Jay Best
門外漢
0 5
148 27
發送站內信

第一個問題:要如何把{}取的值寫入到acc資料庫裡 (好像是JSON型態?)
以下是我架設到iiS上的結果
//********

{"offset":"8","longitude":121.5318,"city":"Taipei","timezone":"Asia\/Taipei","latitude":25.0478,"area_code":"0","region":"T'ai-pei","dma_code":"0","organization":"AS1659 Taiwan Academic Network (TANet) Information Center","country":"Taiwan","ip":"120.106.197.61","country_code3":"TWN","continent_code":"AS","country_code":"TW","region_code":"03"}

用戶IP: 120.106.197.61
瀏覽器 :Chrome68
時間:2018/9/20 下午 05:36:38

//***********
第二個問題:(用戶IP)(瀏覽器)(時間)這三個是用Label 我想要點開網頁後就自動寫入到ACC資料庫,所以就這樣寫到Page_Load裡
後來就出現這個錯誤問題:(Microsoft Access 資料庫引擎無法開啟或寫入 'C:\Users\Desktop\PK.accdb' 檔案。它已經被其他的使用者獨佔地開啟,或者您需要檢視與寫入資料的權限。)
這是我資料庫:https://imageshack.com/a/img922/27/Vh1q9J.png





再麻煩了感恩!

搜尋相關Tags的文章: [ 資料庫 ] , [ 傳值 ] , [ Acc ] , [ 寫入 ] ,
本篇文章發表於2018-09-20 17:37
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

春天
檢舉此回應
1.
把json 反序列化成object(自己定義一個class來裝),然後用OleDbConnection 去Insert
2.
conn.Close();
下面加一個
conn.Dispose();
另外,page_Load好像會有postBack問題
本篇文章回覆於2018-09-20 17:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Jay Best
檢舉此回應
春天哥:
不太了解您 1.回答的意思 (初學者麻煩能說詳細一些嗎感謝了)

2.我向您說的加了 conn.Dispose();
架設的iis 顯示出來一樣是如下
Microsoft Access 資料庫引擎無法開啟或寫入 'C:\Users\IILAB-06\Desktop\PK.accdb' 檔案。它已經被其他的使用者獨佔地開啟,或者您需要檢視與寫入資料的權限。



本篇文章回覆於2018-09-25 12:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Jay Best
檢舉此回應
有高手能幫忙一下 小弟嗎
本篇文章回覆於2018-09-26 17:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

彩虹
檢舉此回應
1. 你是不是正開著 Access 觀看,卻又同時開啟網頁呢? 在網頁執行時,請不要開啟 Access
2. 把 Access 放到你的網站目錄下,不要放在桌面,並重新 設定 Access 路徑
3. 該 Access 是否有設定獨占式開啟或是唯讀開啟
4.
4. 重新建立一個 Access 檔案

先檢查access這個檔案是不是真的有問題及權限是否正確
在網頁中資料庫的連結路徑是否正確
此外,當你開啟這個網頁的時候,你是否正在開啟這個ACCESS檔案
你使用ODBC資料來源管理員設定開啟該access檔案時,是否有設定獨占式開啟或是唯讀開啟

如果都無法解決時,可以再開啟一個新檔,依正確步驟重做一次,很多人都有這種經驗,相信你也會成功的
本篇文章回覆於2018-09-27 09:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

彩虹
檢舉此回應
完整內容請參考
Microsoft Jet 資料庫引擎無法開啟檔案。它已經被其他的使用者獨佔地開啟,或者您需要有檢視
http://www.blueshop.com.tw/board/FUM200410061527123KL/BRD200703191847396NN.html
本篇文章回覆於2018-09-27 09:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

春天
檢舉此回應
序列化就是把物件保存成文字檔(JSON,XML格式等等)
反序列化就是讀取文字檔轉換為原本的物件
詳細請看
JSON 序列化
拿到物件之後讀取該物件的屬性再寫入到你的資料庫
本篇文章回覆於2018-09-27 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Jay Best
檢舉此回應
彩虹大: 我有照您說的都有關掉acc 然後調整一些東西 變成這樣:
'/' 應用程式中發生伺服器錯誤。
運作必須使用更新查詢。
描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

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

原始程式錯誤:


行 24: cmd.Connection = conn;
行 25: cmd.CommandText = "Insert into DB (userIP,Br,usertime) values ('" + b1 + "','" + b2 + "','" + b3 + "')";
行 26: cmd.ExecuteNonQuery();
行 27: conn.Close();
行 28:

原始程式檔: c:\inetpub\jay\Default2.aspx.cs 行: 26

堆疊追蹤:


[OleDbException (0x80004005): 運作必須使用更新查詢。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) +1547617
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +308
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +217
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +219
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +133
Default2.Page_Load(Object sender, EventArgs e) in c:\inetpub\jay\Default2.aspx.cs:26
System.Web.UI.Control.OnLoad(EventArgs e) +106
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785
本篇文章回覆於2018-09-27 18:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Jay Best
檢舉此回應
感謝春天哥:
我在研究研究
本篇文章回覆於2018-09-27 18:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

彩虹
檢舉此回應
應該是沒有開權限,試試看這個方式

對資料庫案右鍵>內容>安全性>群組或使用者名稱
>選擇User>設定開放的權限.一般來說是.修改.讀取及執行.讀取.寫入

錯誤訊息 System.Data.OleDb.OleDbException 運作必須使用更新查詢
https://dotblogs.com.tw/brian/2012/10/19/77648

本篇文章回覆於2018-09-27 18:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Jay Best
檢舉此回應
彩虹大 現在 運行的解決了...又變成
Microsoft Access 資料庫引擎無法開啟或寫入 'C:\Users\IILAB-06\Desktop\jay\PK.accdb' 檔案。它已經被其他的使用者獨佔地開啟,或者您需要檢視與寫入資料的權限

本篇文章回覆於2018-09-28 13:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Jay Best
檢舉此回應
很多方法都嘗試過 不知道到底哪裡有錯誤!!
本篇文章回覆於2018-09-28 13:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

Jay Best
檢舉此回應
輸入我架設的iis http://120.106.197.61:8080
為什麼會跳出: (圖檔)https://i.imgur.com/XcdEcqP.png 請問是什麼意思
本篇文章回覆於2018-09-28 14:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
最有價值解答

彩虹
檢舉此回應
你可以截圖你設定的方式嗎?
你後來是設定了什麼才跳出那個框框?

檢查看看有沒有被什麼資源吃住了,不然就重新建立一個 accdb

另外,你不是已經把 accdb 放到你的網站目錄了嗎
指定 accdb 路徑就不需要寫成這樣 「'C:\Users\IILAB-06\Desktop\jay\PK.accdb'」
可以依照網站目錄直接指過去,例如「/PK.accdb」
本篇文章回覆於2018-09-28 15:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

Jay Best
檢舉此回應
我web.config放在<add name="PK" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\inetpub\jay\PK.accdb;Persist Security Info=False" />
</connectionStrings>



本篇文章回覆於2018-09-28 15:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

Jay Best
檢舉此回應
終於完成 剩下 JSON 序列化的東西
感謝各位大大幫忙
本篇文章回覆於2018-10-02 15:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

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