加了单引号也报错:public int AddOneNewsInfo(NewsInfo newsinfo)
        {
            string sql = String.Format("insert into NewsInfo(UserID,TypeId,NewsTitle,NewsContent,PublishTime,IsAudit,IsPublic) values('{0}',{1},'{2}','{3}','{4}','{5}','{6}')",
                newsinfo.UserID,newsinfo.TypeID,newsinfo.NewsTitle,newsinfo.NewsContent,newsinfo.PUblishTIme,newsinfo.IsAudit,newsinfo.IsPublic);
            DBHelper db = new DBHelper();
            return db.Getcommand(sql);
        }protected void btnFabiao_Click(object sender, EventArgs e)
    {
        bllNewsInfo bll = new bllNewsInfo();
        NewsInfo news = new NewsInfo();
        //news.UserID = (String)Session["username"];
        news.UserID = "湘A88888";
        news.TypeID = Int32.Parse(this.ddlNewsType.SelectedValue);
        news.NewsTitle = this.txtTitle.Text;
        news.NewsContent = this.txtContent.Text;
        news.PUblishTIme = DateTime.Now;
        news.IsAudit = "是";
        news.IsPublic = "是";        int result = bll.AddOneNewsInfo(news);
        if (result > 0)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "系统提示", "alert('发表成功!')", true);
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "系统提示", "alert('发表失败!')", true);
        } 当UserID为:news.UserID = "湘A 88888";时,报的又是另外一个错:“/WEB”应用程序中的服务器错误。
--------------------------------------------------------------------------------'88888' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: '88888' 附近有语法错误。源错误: 
行 43:             int result = 0;
行 44:             SqlCommand comm = new SqlCommand(sql, Getconnection());
行 45:             result = comm.ExecuteNonQuery();
行 46:             return result;
行 47:         }
 

解决方案 »

  1.   

    建议1.
    把生成的SQL语句拷贝下来,放到SQL Server Management Stdio里面运行一下,看报啥错。建议2.
    最好把字段名,表名用[]括起来。
      

  2.   

    行 43:            int result = 0;
    行 44:            SqlCommand comm = new SqlCommand(sql, Getconnection());
    行 45:            result = comm.ExecuteNonQuery();
    行 46:            return result;
    行 47:        } 你应该在红色的地方下断,看看语句到底是什么,你贴出来的根本不是关键代码。照你的描述,明显是你的语句有错。
      

  3.   

    下断点调试,看看生成的SQL语句是什么啊
      ---
     我发现有不少人不喜欢或者完全不用断点调试。
     (在我目前的公司就存在现象:不是不用,而是下了断点也不懂分析)
      

  4.   


    这种错误用sqlprofile分析更简单,现在提倡尽量不用debug
      

  5.   

    在数据库里面测试可以啊
      我为什么调用就不行了啊   调试时sql语句就是那句!
      

  6.   

    得看你的数据表里面"UserID"是给的说明类型了。
      

  7.   

    把你最后执行的那条SQL贴出来。
      

  8.   

    调试时报的错:模块:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\web\ac3a97f8\……
    进程:[1836]WebDev.WebServer.EXE源文件与模块生成时的文件不同。仍要让调试器使用它吗?
      

  9.   

    sql "insert into NewsInfo(UserID,TypeId,NewsTitle,NewsContent,PublishTime,NewsClick,IsAudit,IsPublic) values(湘A 88888,1,重庆交警总队原队长陈洪刚一审被判20年,重庆交警总队原队长陈洪刚一审被判20年,2010-2-26 10:39:47,0,是,是)" string
    这是调试时下面的sql语句
      

  10.   

    现在到底是哪个错?第一个:
    在插入数据时加引号,
    将保留关键字用方括号括起来,
    数据库中字段和插入字段类型不一样,第二个:
    把解决方案重新生成一遍,
    在网站项目(或视图)->属性页->引用->选中该文件(跟踪不了代码)所在的程序集,移除,重新添加。
      

  11.   

    "insert into NewsInfo(UserID,TypeId,NewsTitle,NewsContent,PublishTime,NewsClick,IsAudit,IsPublic) values(湘A 88888,1,重庆交警总队原队长陈洪刚一审被判20年,重庆交警总队原队长陈洪刚一审被判20年,2010-2-26 10:39:47,0,是,是)"你这字符串都没有单引号,当然报错
      

  12.   


    string sql = String.Format("insert into NewsInfo(UserID,TypeId,NewsTitle,NewsContent,PublishTime,IsAudit,IsPublic)
     values('{0}',{1},'{2}','{3}','{4}','{5}','{6}')",
                    newsinfo.UserID,newsinfo.TypeID,newsinfo.NewsTitle,newsinfo.NewsContent,newsinfo.PUblishTIme,newsinfo.IsAudit,newsinfo.IsPublic);在这里我是用了 单引号 的啊! 为什么调试的时候里面的sql语句插入值都没用引号括起来呢?
      

  13.   

    string car="湘A 88888";
    ......,'"+car+"',......
      

  14.   

    估计是你的DBHelper里又做了特殊处理,比如去除单引号之类……
      

  15.   

    建议你用SqlParameter来插入参数,现在用的方式不但容易出错而且容易成为sql injection攻击的目标,应该养成用SqlParameter的好习惯。===================================================
    ASP.NET WebForm和ASP.NET MVC分页最终解决之道
      

  16.   

    问题就在这里,语句拼写错误!
    试下:
       string sql = "insert into NewsInfo(UserID,
                                       TypeId,
                                       NewsTitle,
                                       NewsContent,
                                       PublishTime,
                                       IsAudit,
                                       IsPublic)
                                values('" + newsinfo.UserID + "','"
                                          + newsinfo.TypeID + "','"
                                          + newsinfo.NewsTitle + "','"
                                          + newsinfo.NewsContent + "','"
                                          + newsinfo.PUblishTIme + "','"
                                          + newsinfo.IsAudit + "','"
                                          + newsinfo.IsPublic + "'";