private void InsertImgData(String imgType, byte[] imgData)
    {
        using (SqlConnection myConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn1"].ConnectionString))
        {
            myConn.Open();
            string sql = "INSERT   INTO   ImageStore(imgtype,imgdata)VALUES   (   @imgtype,@imgdata   )";
            SqlCommand cmd = new SqlCommand(sql, myConn);
            
            SqlParameter img = new SqlParameter("@imgtype", SqlDbType.Image);
            img.Value = imgType;
            cmd.Parameters.Add(img);            SqlParameter data = new SqlParameter("@imgdata", SqlDbType.VarChar, 50);
            data.Value = imgData;
            cmd.Parameters.Add(data);            string testsql = sql;            cmd.ExecuteNonQuery();        }
    }这是个插入图片到数据库的函数,运行时提示从“System.String”到“System.Byte[]”的强制转换无效。大家帮我看看吧!谢谢了!

解决方案 »

  1.   

    Convert.ToSByte()把类型转换一下
      

  2.   

    img.Value = imgType; 这里
      

  3.   

    zhaozhao110
    的这种方式不行啊!说是输入字符串的格式不正确。xiahouwen(武眉博<活靶子.NET>) 
    能说详细点怎么改吗?谢谢了!
      

  4.   

    SqlParameter img = new SqlParameter("@imgtype", SqlDbType.Image);
                img.Value = imgType;
                cmd.Parameters.Add(img);            SqlParameter data = new SqlParameter("@imgdata", SqlDbType.VarChar, 50);
                data.Value = imgData;
                cmd.Parameters.Add(data);
    两个参数反了????
    似乎imgType是string,imgDate是byte[]
      

  5.   

    SqlParameter img = new SqlParameter("@imgtype", SqlDbType.Image);
                img.Value = imgData;
                cmd.Parameters.Add(img);            SqlParameter data = new SqlParameter("@imgdata", SqlDbType.VarChar, 50);
                data.Value = imgType;
                cmd.Parameters.Add(data);数据类型传错了。
      

  6.   

    juedaihuaihuai那应该怎么写啊?
      

  7.   

    \\原代码
     SqlParameter img = new SqlParameter("@imgtype", SqlDbType.Image);
                img.Value = imgType;
                cmd.Parameters.Add(img);            SqlParameter data = new SqlParameter("@imgdata", SqlDbType.VarChar, 50);
                data.Value = imgData;
                cmd.Parameters.Add(data);
    -------------------------------------------------------------------------
    \\修改代码
    SqlParameter img = new SqlParameter("@imgtype", SqlDbType.Image);
                img.Value = imgData;
                cmd.Parameters.Add(img);            SqlParameter data = new SqlParameter("@imgdata", SqlDbType.VarChar, 50);
                data.Value = imgType;
                cmd.Parameters.Add(data);