'nvarchar' 附近有语法错误。
必须声明标量变量 "@"。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 'nvarchar' 附近有语法错误。
必须声明标量变量 "@"。  SqlCommand comInsert = new SqlCommand("insert into CompanyInfo (ComLogName,CompanyPwd,[E-Mail],CompanyName,ComAddress,ComTel,ComProfile,IndustryTypeID,CompanyLogo,Copyright,Skin) values(@ComLogName,@CompanyPwd,@[E-Mail],@CompanyName,@ComAddress,@ComTel,@ComProfile,@IndustryTypeID,@CompanyLogo,@Copyright,@Skin)", con);
                comInsert.Parameters.Add("@ComLogName", SqlDbType.NVarChar,50).Value = TextBox_LogName.Text.Trim();
                comInsert.Parameters.Add("@CompanyPwd", SqlDbType.NVarChar,50).Value = TextBox_Pwd.Text;
                comInsert.Parameters.Add("@[E-Mail]", SqlDbType.NVarChar,50).Value = TextBox_EMail.Text.Trim();
                comInsert.Parameters.Add("@CompanyName", SqlDbType.NVarChar,100).Value = TextBox_Name.Text.Trim();
                comInsert.Parameters.Add("@ComAddress", SqlDbType.NVarChar,400).Value = TextBox_Address.Text.Trim();
                comInsert.Parameters.Add("@ComTel", SqlDbType.NVarChar,50).Value = TextBox_Tel.Text.Trim();
                comInsert.Parameters.Add("@ComProfile", SqlDbType.NVarChar,500).Value = InputHtml(TextBox_Content.Text);
                comInsert.Parameters.Add("@IndustryTypeID", SqlDbType.Int).Value = DropDownList_Industry.SelectedValue;
                comInsert.Parameters.Add("@CompanyLogo", SqlDbType.NVarChar,100).Value = TextBox_Logo.Text.Trim();
                comInsert.Parameters.Add("@Copyright", SqlDbType.NVarChar,200).Value = TextBox_Copyright.Text.Trim();
                comInsert.Parameters.Add("@Skin", SqlDbType.NVarChar,50).Value = DropDownList_Skin.SelectedValue;
                con.Open();                int ext = comInsert.ExecuteNonQuery();                con.Close();                if (ext != 0)
                {
                    Response.Redirect("Login.aspx");
                }类型和数据库中都对应上了的啊,为什么还是错的??

解决方案 »

  1.   

    这都用存储过程了,你看你建的表和你添加的类型一样不??大小也要一样的!如果是INT类型的请注意转换!
      

  2.   

    检查一下,@[E-Mail],@CompanyName,@ComAddress,@ComTel,@ComProfile,@IndustryTypeID,@CompanyLogo,@Copyright,@Skin)", 这段,可能@和后面的内容之间多了一个空格
      

  3.   

    好像就是@ [E-Mail]这里@和[E-Mail]之间多了一个空格
      

  4.   

    @[E-Mail] 不对 不合规范貌似
    改为@EMail吧
      

  5.   

    我这里只有nvarchar和int类型,int类型的我现在已经转了,怎么还不行啊
      

  6.   

    肯定是,@[E-Mail]这里出的问题,因为你报的错是没有声明变量@,就是因为@和它后面的内容有空格,把@当作一个单独的变量,而你又没声明变量@
      

  7.   

    把@[E-Mail]改成@E-MAIL,变量声明好像不能用这样的
      

  8.   

    我把那个字段改成E_Mail就好了。。