C# winfrom 如何将byte 用sql语句加入数据库

2024-12-16 08:37:08
推荐回答(2个)
回答1:

photo应该是一个一个添加的吧

下面是一个将图片转换为byte[],然后直接添加此参数

//实例化一个文件流,与写入文件相关联
FileStream fs = new FileStream(photoPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
//获得字节数组
byte[] photoData = new byte[fs.Length];
//开始写入
fs.Read(photoData, 0, imgData.Length);
//关闭流
fs.Close();
……
//photo字段在数据库中为image类型(二进制数据)
cmd.Parameters.Add("@Photo", SqlDbType.Image).Value = photoData;
cmd.ExecuteNonQuery();

另外,你的sql语句也太复杂了,其实,即使是数字,在数据库中也可以设置为varchar类型,如果数据是从textbox中添加的(textbox中的值是string类型),就不需要类型转换了。

string sql = string.Format("insert into EM_Name values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}',{9},{10})", pm.No, pm.Name, pm.Rfidone, pm.Rfidtwo, pm.Rfidthree,pm.Photo, pm.Sex, pm.Phone, pm.Pichi, pm.Type,pm.Group);

回答2:

可以用image类型