在 sql 数据库 C# 中保存图像
Saving image in sql database C#
我想在用户选择时将图像保存在 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) { }
}
ExecuteReader
returns 数据。在你的情况下,你不是。您只需尝试在数据库中插入一行。这就是您需要使用 ExecuteNonQuery
的原因。
并像对 image
变量所做的那样参数化其他插入值。还可以使用 using
statement 来处理您的数据库连接和命令。
int insertedRowCount = command.ExecuteNonQuery();
if(insertedRowCount > 0)
MessageBox.Show("Added Successfully!!!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
从您存储在数据库中的数据中删除所有反斜杠、单引号和双引号。
用一些常量字符串替换它,并在再次检索它时将其转换为原始字符串。
我想在用户选择时将图像保存在 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) { }
}
ExecuteReader
returns 数据。在你的情况下,你不是。您只需尝试在数据库中插入一行。这就是您需要使用 ExecuteNonQuery
的原因。
并像对 image
变量所做的那样参数化其他插入值。还可以使用 using
statement 来处理您的数据库连接和命令。
int insertedRowCount = command.ExecuteNonQuery();
if(insertedRowCount > 0)
MessageBox.Show("Added Successfully!!!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
从您存储在数据库中的数据中删除所有反斜杠、单引号和双引号。
用一些常量字符串替换它,并在再次检索它时将其转换为原始字符串。