看板 Database 關於我們 聯絡資訊
參考書藉:visual c# 2010 速學對策 資料庫他講到select的寫法: OleDbDataAdapter da = new OleDbDataAdapter(); DataSet ds = new DataSet(); string Sql = "select * from [Score]"; da.SelectCommand = new OleDbCommand(Sql, cn); da.Fill(ds, "Score"); dataGridView1.DataSource = ds.Tables["Score"]; cn.Close(); } google新增的寫法是insert into 資料表(a,b) values ('c','d'); 所以我照抄了 OleDbDataAdapter da = new OleDbDataAdapter(); DataSet ds = new DataSet(); string Sql = "INSERT INTO Score ([學號],[姓名]) VALUES('123','test')"; da.InsertCommand = new OleDbCommand(Sql, cn); da.Fill(ds, "Score"); dataGridView1.DataSource = ds.Tables["Score"]; cn.Close(); 錯誤訊息為"SelectCommand 屬性尚未初始化。" 試過把[]修掉 也是一樣 不知道是哪裡錯了? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.85.185
denby:INSERT的寫法沒錯 照著錯誤訊息往該方向找吧 05/19 23:01
GOOGLE過 好像是說資料庫沒連接到之類的意思 SELECT沒問題 INSERT就未初始化 明明就是複製貼上的的說+_+>.. 試過 OleDbConnection cn = new OleDbConnection(); cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DbScore.mdb"; 也一併重新貼在INSERT 但是結果還是一樣未初始化
tedcat:da.fill-> 從sql取result取一個在程式暫存的table名稱 05/19 23:27
tedcat:所以妳要先有一個result table才可以... 05/19 23:28
tedcat:你不可能期望你insert資料進去後,程式就這麼聰明的知道 05/19 23:35
tedcat:知道你要從那個表取什麼樣的資料集出來吧... 05/19 23:35
@_@ 意思是insert不能照抄select da.fill的方式嗎?@@" ※ 編輯: relievezaoc 來自: 118.160.85.185 (05/19 23:45)
tedcat:意思是你insert完之後要在把本來的select那段也補上去... 05/19 23:46
tedcat:這樣ds才會有score的結果集啊... 05/19 23:46
OleDbDataAdapter da = new OleDbDataAdapter(); DataSet ds = new DataSet(); string Sql = "INSERT INTO Score (學號,姓名) VALUES('123','test')"; da.InsertCommand = new OleDbCommand(Sql, cn); >>>> string newSql = "select * from [Score]"; >>>> da.SelectCommand = new OleDbCommand(newSql , cn); da.Fill(ds, "Score"); dataGridView1.DataSource = ds.Tables["Score"]; cn.Close(); 沒有錯誤提示了 但是也沒有新增資料+__+||| 就只是個按扭 按了沒有任何反應 該檢查哪邊呢@_@? ※ 編輯: relievezaoc 來自: 118.160.85.185 (05/20 00:01)
tedcat:剛查了一下語法,insercommand完之後還需要執行他 05/20 00:48
tedcat:da.InsertCommand.ExecuteNonQuery(); 05/20 00:48
tedcat:google到這篇語法 跟你的用途應該是一樣的 05/20 00:50
tedcat:http://tinyurl.com/b5y3o6d 05/20 00:50
!!感謝!!!成功了 但需要再加一條 cn.open(); 可能是語法就是這樣的關係吧? 如果沒有open的話 錯誤是:ExecuteNonQuery 必須有開啟與可用的 Connection。連接目前的狀態已關閉。 大概要ExecutNonQuery就是要綁個Open吧- 3 -|||| 另外想問一下T大是餵了估狗什麼關鍵字呢@_@? 我GOOGLE InsertCommand SQL 或是 InsertCommand 語法 都沒看到這個網站呢QQ 這網站棒~~繼續研究怎麼新增使用者自己輸入資料~~還有刪除..XD~!!! 心得:sql的語法好難抄啊!!!!!!!!!!!Q冊Q!!!!!!!!~~~ 再次感謝t大的幫忙!!^_^ ※ 編輯: relievezaoc 來自: 118.160.85.185 (05/20 20:52)
tedcat:我就只是把你的da.insert...當成關鍵字 05/21 19:52
tedcat:另外,你那個是屬於vb.net/c#.net的層面,所以你打insert sql 05/21 19:53
tedcat:insertcommand sql是不會有結果的...你應該打的是.net inse 05/21 19:53
tedcat:.net insertcommand就會找到一堆了 05/21 19:53
哦哦..瞭解@__@!! 再次感謝你~~!! ※ 編輯: relievezaoc 來自: 118.160.87.109 (05/22 21:40)