none
在資料庫沒有主鍵下,更新datagridview裡的資料並存回mssql資料庫? RRS feed

  • 問題

  • 首先資料庫沒有主鍵..所以一些SqlCommandBuilder產生的updata不能用..會丟回

    "不會傳回任何重要資料行資訊的 SelectCommand 不支援 UpdateCommand 動態 SQL 的產生。"錯誤訊息.......

    我希望在不動到資料庫的情形下..能在datagridview新增、更新、刪除資料..並存回資料庫..

    另外我的BindingSource也一直連不到資料庫..所以這方法好像也不能用...

    因為工作需要...有人能教我其他可行的方法嗎? 我上網查了好久都找不到了

     

     

    2010年7月22日 上午 06:53

解答

  • 1. 不要使用設計界面產生的Code處理, 自行撰寫ADO.NET程式碼來做

    2. ADO.NET 請 參考 MSDN文件庫 [ADO.NET ]

    3. 當使用DataAdapter. Update 方法更新資料庫時, 是可以使用RowState來控制要Update哪個Row, 請參閱[以 DataAdapter 更新資料來源 ]

    4.關於RowState, 請參閱 [資料列狀態和資料列版本]

    結論: 使用Visual Studio的設計畫面的確在某些方面會提供方便性, 但靈活度不高, 自己寫程式碼的花樣會比較多一點.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 night-mind 2010年7月24日 上午 05:02
    2010年7月22日 上午 07:15
    版主

所有回覆

  • 資料表好歹要定義unique的資料,不然沒辦法知道update回去是否正確
    2010年7月22日 上午 07:08
  • 1. 不要使用設計界面產生的Code處理, 自行撰寫ADO.NET程式碼來做

    2. ADO.NET 請 參考 MSDN文件庫 [ADO.NET ]

    3. 當使用DataAdapter. Update 方法更新資料庫時, 是可以使用RowState來控制要Update哪個Row, 請參閱[以 DataAdapter 更新資料來源 ]

    4.關於RowState, 請參閱 [資料列狀態和資料列版本]

    結論: 使用Visual Studio的設計畫面的確在某些方面會提供方便性, 但靈活度不高, 自己寫程式碼的花樣會比較多一點.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 night-mind 2010年7月24日 上午 05:02
    2010年7月22日 上午 07:15
    版主
  • 因為小弟是新手..所以公司的資料庫我是盡量能不更改其設定

     

    2010年7月22日 上午 07:16
  • 首先感謝bill的回答..不過小弟算初學vs2008  且時間上又有點急迫~~可以說的更清楚詳細一點嗎?再次感謝...
    2010年7月22日 上午 07:39
  • 上文的Link中都有詳細資料, 而且真的很詳細.

    而且老實講, 我實在不可能講得比那些文還詳細.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年7月22日 上午 07:42
    版主
  • Hi,

    參閱既有討論最下方回應

    請教 vb.net 2005 express OleDbCommandBuilder 的問題??

    http://social.msdn.microsoft.com/forums/zh-TW/232/thread/79dd33cd-256c-4414-bbb8-26c7c3d5ac44/


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年7月22日 上午 10:22
  • 如同阿尼大講的,您先確定一下資料庫裡面到底是用哪個欄位(或哪些欄位)來做唯一性的判斷,

    如果沒有唯一性,那您想做的恐怕會跟您實際上做出來的完全不同......


    小中中的學習筆記
    2010年7月24日 上午 03:41
  • 沒有主健真的是很麻煩...最後只能在程式裡..選1.2個欄位標為主健再去更新了..不然更新一筆其他資料全部都會覆蓋掉..感謝各位回答!!
    2010年7月24日 上午 05:03