sql server -在sql数据库c#中保存图像

本文关键字:sql 保存 图像 数据库 server | 更新日期: 2023-09-27 17:51:08

我想在用户选择时将图像保存在SQL数据库中。到目前为止,我已经输入了这个代码。这不会给我任何错误,但不会添加到数据库。我认为某些东西是错误的SQL语句。

有人能帮帮我吗?

这是我的代码:

public void addImages(string tag1,string tag2,string tag3,string status,string fileName)
{
    try
    {
        byte[] image = null;
        FileStream fsstream = new FileStream(fileName,FileMode.Open,FileAccess.Read);
        BinaryReader br = new BinaryReader(fsstream);
        image = br.ReadBytes((int)fsstream.Length);
        SqlCommand command = new SqlCommand("INSERT INTO [ImagesAndTags] (Images,Tags,Tag2,Tag3,Status) values (@IMG,'" + tag1 + "','" + tag2 + "','" + tag3 + "','" + status + "')", con);
        con.Open();
        command.Parameters.Add(new SqlParameter("@IMG",image));
        SqlDataReader reader = command.ExecuteReader();
        MessageBox.Show("Added Successfully!!!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
        while (reader.Read()) { }
    }
    catch(Exception ex) { }
}

sql server -在sql数据库c#中保存图像

ExecuteReader返回数据。在你的情况下,你不是。您只需尝试在数据库中插入一行。这就是为什么你需要用ExecuteNonQuery来代替。

并将其他插入值参数化,就像您对image变量所做的那样。还可以使用using语句来处理数据库连接和命令。

int insertedRowCount = command.ExecuteNonQuery();
if(insertedRowCount > 0)
   MessageBox.Show("Added Successfully!!!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

从数据库中存储的数据中删除所有反斜杠、单引号和双引号。

将其替换为某个常量字符串,并在再次检索时将其转换为原始值