C# 存储图片到mysql

crowzwong 2009-03-01 02:42:30
C# 存储图片到mysql
哪个前辈给点指示代码`````
...全文
692 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyle315 2009-03-12
  • 打赏
  • 举报
回复
不要用MySQLDriverCS了,直接上Mysql官方网站下载一个mysql动态库就可以了,操作方法和sqlserver的几乎一样。地址:http://dev.mysql.com/downloads/connector/net/5.2.html
crowzwong 2009-03-02
  • 打赏
  • 举报
回复
[C# code] using (MySqlConnection sqlcon = new MySqlConnection(ConfigurationManager.ConnectionStrings["conMysql"].ToString()))
{
sqlcon.Open();
MySqlCommand sqlcom = new MySqlCommand("update tb_GoodsInfo set GoodsSize=?GoodsSize,ArticleHeavy=?ArticleHeavy,Amount=?Amount,NetWeight=?NetWeight,GrossWeight=?GrossWeight,Price=?Price,Photo=?Photo where GoodsId='" + str货号 + "'", sqlcon);


MySqlParameter parID = new MySqlParameter("?GoodsId", MySqlDbType.String);
parID.Value = tbxGoodsId.Text.Trim().ToString();

MySqlParameter parNam = new MySqlParameter("?GoodsName", MySqlDbType.String);
parNam.Value = tbxGoodsName.Text.Trim().ToString();

MySqlParameter parSize = new MySqlParameter("?GoodsSize", MySqlDbType.String);
parSize.Value = tbxGoodsSize.Text.Trim().ToString();

MySqlParameter parAH = new MySqlParameter("?ArticleHeavy", MySqlDbType.String);
parAH.Value = tbxGoodsAh.Text.Trim().ToString();

MySqlParameter parAm = new MySqlParameter("?Amount", MySqlDbType.String);
parAm.Value = tbxGoodsAmount.Text.Trim().ToString();

MySqlParameter parNW = new MySqlParameter("?NetWeight", MySqlDbType.String);
parNW.Value = tbxGoodsNetWeight.Text.Trim().ToString();

MySqlParameter parGW = new MySqlParameter("?GrossWeight", MySqlDbType.String);
parGW.Value = tbxGoodsGrossWeight.Text.Trim().ToString();

MySqlParameter parPrice = new MySqlParameter("?Price", MySqlDbType.String);
parPrice.Value = tbxGoodsPrice.Text.Trim().ToString();

MySqlParameter parPhoto = new MySqlParameter("?Photo", MySqlDbType.MediumBlob);
parPhoto.Value = imgbyte;

sqlcom.CommandType = CommandType.Text;
sqlcom.Parameters.Add(parID);
sqlcom.Parameters.Add(parNam);
sqlcom.Parameters.Add(parSize);
sqlcom.Parameters.Add(parAH);
sqlcom.Parameters.Add(parAm);
sqlcom.Parameters.Add(parNW);
sqlcom.Parameters.Add(parGW);
sqlcom.Parameters.Add(parPrice);
sqlcom.Parameters.Add(parPhoto);

sqlcom.ExecuteNonQuery();
}[/code]
plby 2009-03-02
  • 打赏
  • 举报
回复
如果是存储路径,那还得需要带一个上传的处理。如果图片不大,可以存入数据库的。
crowzwong 2009-03-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xueyuanlang_fushuai 的回复:]
不好办,存路径多方便
[/Quote]

存到路径的话, 如何我要在水晶报表显示图片, 能不?

我还没试过存路径
  • 打赏
  • 举报
回复
不好办,存路径多方便
crowzwong 2009-03-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 smartxue1987 的回复:]
  protected void btnSubmit_Click(object sender, EventArgs e)
    { Int64 intImageSize;
      string strImageType;
      Stream  ImageStream;
        //获得图片的大小
    intImageSize = FileUpload1.PostedFile.ContentLength;
        //获得图片类型
      strImageType =FileUpload1.PostedFile.ContentType;
        //读取图片
ImageStream = FileUpload1.PostedFile.InputStream;
byte[]  ImageCont…
[/Quote]

你的是mssql
我现在的是在mysql, 很多地方都不同的
smartxue1987 2009-03-01
  • 打赏
  • 举报
回复
protected void btnSubmit_Click(object sender, EventArgs e)
{ Int64 intImageSize;
string strImageType;
Stream ImageStream;
//获得图片的大小
intImageSize = FileUpload1.PostedFile.ContentLength;
//获得图片类型
strImageType =FileUpload1.PostedFile.ContentType;
//读取图片
ImageStream = FileUpload1.PostedFile.InputStream;
byte[] ImageContent=new byte[intImageSize];
int intStatus;
intStatus = ImageStream.Read(ImageContent, 0,Convert.ToInt32(intImageSize));


SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand insertCmd = new SqlCommand("insert into AddressLists(userId,frdName,frdPhone,frdMobilePhone,frdBirthday,frdAddress,frdEmail,frdQQ,frdImage) values(@userId,@Name,@Phone,@MobilePhone,@Birthday,@Address,@Email,@QQ,@Image)", conn);
insertCmd.Parameters.Add("@userId", SqlDbType.VarChar, 15);
insertCmd.Parameters.Add("@Name", SqlDbType.VarChar, 10);
insertCmd.Parameters.Add("@Phone", SqlDbType.VarChar, 15);
insertCmd.Parameters.Add("@MobilePhone", SqlDbType.VarChar, 11);
insertCmd.Parameters.Add("@Birthday", SqlDbType.DateTime);
insertCmd.Parameters.Add("@Address", SqlDbType.VarChar, 200);
insertCmd.Parameters.Add("@Email", SqlDbType.VarChar, 50);
insertCmd.Parameters.Add("@QQ", SqlDbType.VarChar, 15);
insertCmd.Parameters.Add("@Image", SqlDbType.Image);
insertCmd.Parameters["@userId"].Value = Session["login_name"].ToString();
insertCmd.Parameters["@Name"].Value = txtName.Text;
insertCmd.Parameters["@Phone"].Value = txtUtel2.Text;
insertCmd.Parameters["@MobilePhone"].Value = txtUtel3.Text;
insertCmd.Parameters["@Birthday"].Value = Convert.ToDateTime(txtBirthday.Text);
insertCmd.Parameters["@Address"].Value = txtUaddr.Text;
insertCmd.Parameters["@Email"].Value = txtUemail.Text;
insertCmd.Parameters["@QQ"].Value = txtUQQ.Text;
insertCmd.Parameters["@Image"].Value = ImageContent;

try
{

conn.Open();
int flag = insertCmd.ExecuteNonQuery();
if (flag > 0)
{
//Response.Write("<script language=javascript>alert('成功添加好友记录!')</script>");

Label1.Text = "成功添加好友记录!";
}
else
{
//Response.Write("<script language=javascript>alert('添加好友记录失败,查看输入是否正确!')</script>");

Label1.Text = "添加好友记录失败,查看输入是否正确!";
}
}
catch (System.Exception ee)
{
//Response.Write("<script language=javascript>alert('" + ee.Message.ToString() + "')</script>");

Label1.Text = ee.Message.ToString();
}
finally
{
//conn.Close();
}
}
  • 打赏
  • 举报
回复
学习ing
licrosoftyzb 2009-03-01
  • 打赏
  • 举报
回复
一般都是选择存图片路径。
crowzwong 2009-03-01
  • 打赏
  • 举报
回复
数据库的相关字段为Char型, 图片字段为Binary

会不会DbType.String和字段Char型 冲突了?
crowzwong 2009-03-01
  • 打赏
  • 举报
回复
运行代码报错:对 PInvoke 函数“MySQLDriverCS!MySQLDriverCS.CPrototypes::mysql_real_escape_string”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。

 FileStream fs = new FileStream(openFile.FileName, FileMode.OpenOrCreate, FileAccess.Read);
byte[] imgbyte = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imgbyte = br.ReadBytes(Convert.ToInt32(fs.Length));

MySQLConnection sqlcon = new MySQLConnection(ConfigurationManager.ConnectionStrings["conStr"].ToString());
sqlcon.Open();

MySQLParameter parID=new MySQLParameter("@GoodsId", DbType.String);
parID.Value = tbxGoodsId.Text.Trim().ToString();

MySQLParameter parNam = new MySQLParameter("@GoodsName", DbType.String);
parNam.Value = tbxGoodsName.Text.Trim().ToString();
MySQLParameter parSize = new MySQLParameter("@GoodsSize", DbType.String);
parSize.Value = tbxGoodsSize.Text.Trim().ToString();

MySQLParameter parAH = new MySQLParameter("@ArticleHeavy", DbType.String);
parAH.Value = tbxGoodsAh.Text.Trim().ToString();

MySQLParameter parAm = new MySQLParameter("@Amount", DbType.String);
parAm.Value = tbxGoodsAmount.Text.Trim().ToString();

MySQLParameter parNW = new MySQLParameter("@NetWeight", DbType.String);
parNW.Value = tbxGoodsNetWeight.Text.Trim().ToString();

MySQLParameter parGW = new MySQLParameter("@GrossWeight", DbType.String);
parGW.Value = tbxGoodsGrossWeight.Text.Trim().ToString();

MySQLParameter parPrice = new MySQLParameter("@Price", DbType.String);
parPrice.Value = tbxGoodsPrice.Text.Trim().ToString();

MySQLParameter parPhoto = new MySQLParameter("@Photo", DbType.Binary);
parPhoto.Value = imgbyte;

MySQLCommand sqlcom = new MySQLCommand("insert into tb_GoodsInfo(GoodsId,GoodsName,GoodsSize,ArticleHeavy,Amount,NetWeight,GrossWeight,Price,Photo) values(@GoodsId,@GoodsName,@GoodsSize,@ArticleHeavy,@Amount,@NetWeight,@GrossWeight,@Price,@Photo)", sqlcon);

sqlcom.CommandType = CommandType.Text;
sqlcom.Parameters.Add(parID);
sqlcom.Parameters.Add(parNam);
sqlcom.Parameters.Add(parSize);
sqlcom.Parameters.Add(parAH);
sqlcom.Parameters.Add(parAm);
sqlcom.Parameters.Add(parNW);
sqlcom.Parameters.Add(parGW);
sqlcom.Parameters.Add(parPrice);
sqlcom.Parameters.Add(parPhoto);

sqlcom.ExecuteNonQuery();
sqlcon.Close();
fs.Close();
xb254044992 2009-03-01
  • 打赏
  • 举报
回复
数据类型定为字符串
然后把图片放在固定的文件夹
然后把路径或者就图片名字储存进去

其他的和你在数据库添加数据一样
zhanghaolove 2009-03-01
  • 打赏
  • 举报
回复
最好不要存储图片到数据库,存储图片的路径吧~!

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧