我有一个数据库存储图像,我想用新的图像替换这些图像。这是事情:我有一个picturebox,在这个picturebox我正在下载一个图像。这个图像是我想用来替换我的数据库中当前图像的列“Id”为6的那个图像。 现在我试图用UPDATE做它,但它不工作,我想知道为什么。这里是我的代码:用c#替换数据库中的图像(使用更新)
private void buttonReplace_Click(object sender, EventArgs e)
{
string sql = "SELECT * FROM [Insert_Image]"; //name of database
SqlDataAdapter dA = new SqlDataAdapter(sql, cn);
DataTable dT = new DataTable();
dA.Fill(dT);
int z = dT.Rows.Count + 1;
int i = 6;
try
{
cn.Open();
byte[] img = null;
FileStream fs = new FileStream(imgLoc, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
img = br.ReadBytes((int)fs.Length);
string strSql = "UPDATE [Insert_Image] SET Picture = " + @img + " WHERE Id LIKE '" + i + "'";
SqlCommand cmd = new SqlCommand(strSql, cn);
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(Convert.ToString(ex));
}
finally
{
cn.Close();
}
}
我的问题是,一些被保存在我的数据库,但无论我与这个代码存钱还不是一个图像的二进制代码。我检查了我的文件流,这是正确的,因为我使用了用于上传到picturebox的相同文件流。我会很高兴任何帮助或想法。
我们将需要更多的信息。初学者的数据库模式是什么?有关SQL参数的信息,请参阅 – JimNicholson
。例如使用二进制数据,你的方式是错误的。代码也有很少的最佳决策 –
我的数据库有两列:Id(这是主键)和Picture。 现在我在这个数据库中有10行,在第6行有一张图片,我想用新的图片替换。 – MaChaToc