· 8 years ago · Jun 12, 2018, 07:14 PM
1"CREATE TABLE if not exists tag_name( " +
2 "tagid INTEGER PRIMARY KEY, " +
3 "title TEXT UNIQUE);";
4
5 "CREATE TABLE if not exists media_tags( " +
6 "media_id INTEGER, " +
7 "tagid INTEGER);";
8
9void insertMediaTags(List<string> tags, long mediaId)
10 {
11 foreach(string tag in tags)
12 {
13 command.CommandText =
14 "INSERT OR IGNORE INTO tag_name(title) VALUES(@title); " +
15 "SELECT last_insert_rowid() AS RecordID;";
16 command.Parameters.Add("@title", DbType.String).Value = tag;
17 long tagid = (long)command.ExecuteScalar();
18 command.CommandText =
19 "INSERT INTO media_tags(media_id, tagid) " +
20 "VALUES(@media_id, @tagid);";
21 command.Parameters.Add("@media_id", DbType.Int32).Value = mediaId;
22 command.Parameters.Add("@tagid", DbType.Int64).Value = tagid;
23 command.ExecuteNonQuery();
24 }
25 }
26
27void insertMediaTags(List<string> tags, long mediaId)
28 {
29 foreach(string tag in tags)
30 {
31 long tagId;
32 command.CommandText = "SELECT tagid FROM tag_name WHERE title=@title;";
33 command.Parameters.Add("@title", DbType.String).Value = tag;
34 object o = command.ExecuteScalar();
35 if (o == null)
36 {
37 command.CommandText =
38 "INSERT OR IGNORE INTO tag_name(title) VALUES(@title); " +
39 "SELECT last_insert_rowid() AS RecordID;";
40 command.Parameters.Add("@title", DbType.String).Value = tag;
41 tagId = (long)command.ExecuteScalar();
42 }
43 else
44 tagId = (long)o;
45
46 command.CommandText =
47 "INSERT INTO media_tags(media_id, tagid) " +
48 "VALUES(@media_id, @tagid);";
49 command.Parameters.Add("@media_id", DbType.Int32).Value = mediaId;
50 command.Parameters.Add("@tagid", DbType.Int64).Value = tagId;
51 command.ExecuteNonQuery();
52 }
53 }