2013-03-21 137 views
2

我的SQLite表內容到colume是這樣插入SQLite中

content_id  content_no  content_1  content_2 
    1    1:1    NULL   1:1 text 
    2    1:2    NULL   1:2 text 

現在我想插入內容「content_1」。只有content_no與content_1的1:1匹配。

我插入的代碼是這樣的:

cmd.CommandText = "insert into Content (content_1) values (?)"; 

SQLiteParameter Field3 = cmd.CreateParameter(); 
cmd.Parameters.Add(Field3); 
Field3.Value = node.InnerText; 

但它插入這樣

content_id  content_no  content_1  content_2 
    1    1:1    NULL   1:1 text 
    2    1:2    NULL   1:2 text 
           1:1 text  
           1:2 text  

我不希望這樣的內容。最後2行應該移動到前2行

回答

5
using (SQLiteTransaction SQLiteTrans = connection.BeginTransaction()) 
       { 
        using (SQLiteCommand cmd = connection.CreateCommand()) 
        { 
        cmd.CommandText = ("update contents set content_1 ='" + paraNode + "' where content_id ='" + Count + "'"); 


         SQLiteParameter Field1 = cmd.CreateParameter(); 
         SQLiteParameter Field2 = cmd.CreateParameter(); 
         cmd.Parameters.Add(Field1); 
         cmd.Parameters.Add(Field2); 
         cmd.ExecuteNonQuery(); 
        } 
        SQLiteTrans.Commit(); 
       } 

編碼愉快:)

2

我不想這樣。最後兩行應該移動到第2行

你需要UPDATE語句,不INSERT聲明。

cmd.CommandText = "Update Content SET content_1 = @pcontent_1 WHERE content_id = @pcontent_id"; 

cmd.Parameters.Add(new SQLiteParameter("@pcontent_1", "1:1")); 
cmd.Parameters.Add(new SQLiteParameter("@pcontent_id", node.InnerText)); 

,你需要的content_idcontent_1傳遞給查詢。

+0

我使用的更新語句也。但我不知道我必須使用哪些單引號。 cmd.CommandText =「UPDATE Con​​tent Set content_1 ='node.Innertext'WHERE content_no ='1:1'」; – PiggyChops 2013-03-21 07:22:30

+0

@PiggyChops,使用參數爲此目的以及 – Habib 2013-03-21 07:23:32

+0

@PiggyChops,檢查編輯答案 – Habib 2013-03-21 07:25:59

0

你要麼必須delete以前的內容和insert新的或

只是不得不解僱現有內容UPDATE查詢。

0

使用更新你的情況更合適,但你需要提供主鍵也,不僅content_1