我用asp.net修改sqlserver的image字段内容,请问哪里不对?str="update db set attach=@attach where id=1"
dim cm as sqlcommand(str,cn)
cm.parameters.add("@attach",imadata)
try
  cn.open
  cm.executenonquery()
catchfinally
   cn.close
end try

解决方案 »

  1.   

    给你一段示例,参考对照一下,应该对你有帮助的
    页面类代码:protected void Button1_Click(object sender, EventArgs e)
        {
            Guanggao gg = new Guanggao();
            ImgManager im = new ImgManager();
            if (this.FileUpload1.FileName != "")
            {
                gg.Img1 = "centenimg";
                gg.Img2 = this.FileUpload1.FileName.Trim();
                int count = im.Imginfo(gg);
                if (count >= 0)
                {
                    string spath = Server.MapPath("~/images/");
                    this.FileUpload1.SaveAs(spath + this.FileUpload1.FileName);
                    Response.Redirect("Default.aspx", false);            }
                else
                {
                    Response.Write("<script>alert('添加失败!!');</script>");
                }
            }
            else
            {
                Response.Write("<script>alert('确认更新?????');</script>");
            }
        }业务层代码:namespace NewsBLL
    {
        public class ImgManager
        {
            ImgService ims = new ImgService();
            public int Imginfo(Guanggao g)
            {
                return ims.Imginsert(g);
            }
            public Guanggao GetImage(string name)
            {
                return ims.GetImg(name);
            }
        }
    }数据层代码:namespace NewsDAL
    {
        public class ImgService
        {
            public int Imginsert(Guanggao g)
            {
                string sql = "insert into Images values(@name,@image)";
                SqlParameter[] spm = new SqlParameter[]
                {
                    new SqlParameter("@name",g.Img1),
                    new SqlParameter("@image",g.Img2)
                };
                int count = DBHelper.GetScalar(sql, spm);
                return count;
            }
            public Guanggao GetImg(string name)
            {
                string sql = "select Image from Images where IName='" + name + "'";
                Guanggao gg = new Guanggao();
                using (SqlDataReader dr = DBHelper.GetReader(sql))
                {
                    while (dr.Read())
                    {                    gg.Img2 = Convert.ToString(dr["Image"]);
                    }
                }
                return gg;
            }
        }
        
    }调用的连接代码: public static class DBHelper
        {
            //数据库连接属性
            private static SqlConnection connection;
            public static SqlConnection Connection
            {
                get
                {
                    string connectionString = ConfigurationManager.ConnectionStrings["NewsConnectionString"].ConnectionString;
                    if (connection == null)
                    {
                        connection = new SqlConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
    /// <summary>
            /// 执行无参SQL语句,并返回执行记录数
            /// </summary>
            public static int GetScalar(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return result;
            }
            /// <summary>
            /// 执行有参SQL语句,并返回执行记录数
            /// </summary>
            public static int GetScalar(string sql, params SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return result;
            }
            /// <summary>
            /// 执行无参SQL语句,并返回SqlDataReader
            /// </summary>
            public static SqlDataReader GetReader(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }
            /// <summary>
            /// 执行有参SQL语句,并返回SqlDataReader
            /// </summary>
            public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }
      

  2.   

    imadata 必须为 byte[] 类型才可以。
    查考我的文章,上面写的很明白:
    http://www.cnblogs.com/wfyfngu/archive/2008/10/09/1307390.html
      

  3.   

    谢谢高手指点!我的上传照片代码运行正常,update语句不知错在哪里?