C# 存储图片到mysql
哪个前辈给点指示代码`````

解决方案 »

  1.   

    http://www.cnblogs.com/ycoe/articles/353498.html
      

  2.   

    运行代码报错:对 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();
      

  3.   

    数据库的相关字段为Char型, 图片字段为Binary会不会DbType.String和字段Char型 冲突了? 
      

  4.   

      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();
            }
        }
      

  5.   


    你的是mssql
    我现在的是在mysql, 很多地方都不同的
      

  6.   

    [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]
      

  7.   

    不要用MySQLDriverCS了,直接上Mysql官方网站下载一个mysql动态库就可以了,操作方法和sqlserver的几乎一样。地址:http://dev.mysql.com/downloads/connector/net/5.2.html