一段代码实现头像上传,提示“/” 附近有语法错误,图片可以存到指定文件夹,但没入数据库,哪里错了呢?
小妹新手,各位见笑~
protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            String name = FileUpload1.PostedFile.FileName;
            FileInfo file = new FileInfo(name);
            string fileName = file.Name;
            string webFilepath = Server.MapPath("../../uploadfile/Head/" + fileName);
            string fileContentType = FileUpload1.PostedFile.ContentType;
            if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg" || fileContentType == "image/jpg")
            {
                if (!File.Exists(webFilepath))
                {
                    try
                    {
                        SqlConnection con = new SqlConnection(co);
                        con.Open();
                        FileUpload1.SaveAs(webFilepath);                        string ID = Session["ID"].ToString();
                        string url = "~/uploadfile/Head/" + fileName;
          
                        string sql = "insert into user_info(head)values(" + url + ")where user_id=("+ID+")";
                        SqlCommand com3 = new SqlCommand(sql, con);
                        com3.ExecuteNonQuery();
                        con.Close();                        Label2.Visible = true;
                        Label2.Text = "图片上传成功!";
                        Image2.Visible = true;
                        Image2.ImageUrl = "~/uploadfile/Head/" + fileName;
                        Image2.Width = 200;
                        Image2.Height = 200;                    }
                    catch (Exception ex)
                    {
                        Label2.Visible = true;
                        Label2.Text = "图片上传失败,失败原因:" + ex.Message;
                    }
                }
                else
                {
                    Label2.Visible = true;
                    Label2.Text = "图片已存在,请重命名后上传";                }
            }
            else
            {
                Label2.Visible = true;
                Label2.Text = "图片格式不符,只能上传 *.bmp、*.jpg、*.gif类型图片";
            }
        }
        else
        {
            Label2.Visible = true;
            Label2.Text = "请选择图片文件或输入图片文件路径及名称";
        }
    }

解决方案 »

  1.   

    url是varchar类型的话,需要两边加单引号的.
      

  2.   


      string sql = "insert into user_info(head) values('" + url + "') where user_id="+ID;
      

  3.   

    改过之后页面提示“失败原因:where附近有语法错误”
      

  4.   

    楼主:你断点调试一下,把语句拿出来看一下,即可知道错在那。根据你给的,where附近的错误提示,应该是少了个空格。
      

  5.   

    如果改为三楼的,还是报此错误,那就是你url里有特殊的字符。方法一:用参数化生成语句再执行,其它的工作交给sql来做。
    方法二:转换URL里的特殊字符。
      

  6.   


    你这个ID是什么类型呢?如果是int怎么可以直接加呢?如果是string类型,那写成sql语句是要加双引号的
      

  7.   

    如果是int类型的话,是可以直接加的吧。
      

  8.   


    string s =@"some strings"