2

我的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       

我不想这样。最后两行应该移到前两行

4

4 回答 4

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();
               }

快乐编码:)

于 2013-03-22T04:52:58.557 回答
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_idand传递content_1给查询的位置。

于 2013-03-21T07:20:22.997 回答
0

您要么必须拥有delete以前的内容和insert新的内容,要么,

只需UPDATE对现有内容进行查询。

于 2013-03-21T07:21:41.660 回答
0

在您的情况下使用Update更合适,但您还需要提供主键,而不仅仅是 content_1

于 2013-03-21T07:24:17.283 回答