我在sqlite數據庫文件中有一個BLOB列,我想改變這個字段給它更多的信息。改變數據庫中的BLOB字段
的BLOB包含這樣的文字:
"{\"Number\":\"35\",\"ChannelType\":\"TV\",\"ServiceName\":\"DVBLink\",\"ImageInfos\":[],\"IsInMixedFolder\":false,\"Name\":\"13th Street HD\",\"Id\":\"466ab1fb9be4f77e65ad2b229a15c326\",\"DateCreated\":\"2015-09-14T12:55:51.4081476Z\",\"DateModified\":\"0001-01-01T00:00:00.0000000Z\",\"DateLastSaved\":\"2015-10-17T13:34:37.4214116Z\",\"LockedFields\":[],\"ParentId\":\"00000000000000000000000000000000\",\"Studios\":[],\"Genres\":[],\"ProviderIds\":{\"ProviderExternalId\":\"13250000\"}}"
下面的代碼來獲取這些信息
private void button1_Click(object sender, EventArgs e)
{
try {
SQLiteConnection con = new SQLiteConnection("Data Source=D:\\2work\\VisualStudio\\Projects\\MapTVIcons\\library.db");
con.Open();
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT guid,data FROM TypedBaseItems where type = 'MediaBrowser.Controller.LiveTv.LiveTvChannel'";
//cmd.CommandText = "SELECT * FROM TypedBaseItems";
DataSet ds = new DataSet();
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
ds.Tables.Add("TypedBaseItems");
da.Fill(ds);
//dataGridView1.DataSource = ds.Tables[1];
foreach (DataRow dr in ds.Tables[1].Rows)
{
byte[] array = (byte[])dr["data"];
var str = System.Text.Encoding.Default.GetString(array);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
我想要做的是讀出的ID值(斑點標識\「裏面:\ 「466ab1fb9be4f77e65ad2b229a15c326)並添加一個路徑到」ImageInfos「,並將新的BLOB放回數據庫文件。
使用update語句即可。 –
你需要能夠唯一標識你想改變的每一行 - 可能是通過主鍵,所以修改查詢來獲得id字段和數據 - 並使用SQL UPDATE命令,如@TechieBee所述。 – PaulF
對不起,我的錯誤理解我的意思是ID內的ID:「\」466ab1fb9be4f77e65ad2b229a15c326 \ – user1073472