数据表脚本
CREATE TABLE [SurveyTaskInfo] (
[SurveyTaskID] [int] IDENTITY (1, 1) NOT NULL ,
[SurveyTaskName] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[BeginDate] [datetime] NOT NULL ,
[PlanEndDate] [datetime] NOT NULL ,
[EndDate] [datetime] NULL ,
[Re] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[ProjectID] [int] NOT NULL ,
[ProjectProfessionalID] [int] NOT NULL ,
[DirectorID] [int] NOT NULL ,
 PRIMARY KEY  CLUSTERED 
(
[SurveyTaskID]
)  ON [PRIMARY] 
) ON [PRIMARY]
GO
--------------------------拼装sql(请不要鄙视我有sql拼装,这段代码一起时用参数形式的,为了方便调试才改成这样的)
StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into SurveyTaskInfo (");
            strSql.Append("SurveyTaskName,BeginDate,PlanEndDate,EndDate,Re,ProjectID,ProjectProfessionalID,DirectorID)");
            strSql.Append(" values('");
            strSql.Append(model.SurveyTaskName + "','" + model.BeginDate + "','" + model.PlanEndDate + " ',' " + model.EndDate + "','" + model.Re + "'," + model.ProjectID + "," + model.ProjectProfessionalID + "," + model.DirectorID + ")");            SqlConnection conn = new SqlConnection(连接语句);
            conn.Open();
            SqlCommand command = new SqlCommand(strSql.ToString(), conn);
            command.ExecuteNonQuery();
            conn.Close();
          程序运行时总是提示列名 'BeginDate' 无效。

解决方案 »

  1.   

    sql语句 先在数据库中 试一下   
      

  2.   

    strSql.Append(model.SurveyTaskName + "','" + model.BeginDate + "','" + model.PlanEndDate + " ',' " + model.EndDate + "','" + model.Re + "'," + model.ProjectID + "," + model.ProjectProfessionalID + "," + model.DirectorID + ")");中的逗号有问题
      

  3.   

    你打印出来
    strSql.ToString()
    不久明白了,啊
      

  4.   

    确认下BeginDate没有拼写错误。
      

  5.   

    先把你的strSql完整字符串贴出来,这样看不出什么错
      

  6.   

     SqlConnection conn = new SqlConnection();
                conn.ConnectionString = "Data Source=.;Initial Catalog=db_OAChang;Persist Security Info=True;User ID=sa;Password=123456";
                StringBuilder strSql = new StringBuilder();
                strSql.Append("insert into SurveyTaskInfo (");
                strSql.Append("SurveyTaskName,BeginDate,PlanEndDate,EndDate,Re,ProjectID,ProjectProfessionalID,DirectorID)");
                strSql.Append(" values('");
                strSql.Append(SurveyTaskName + "','" + BeginDate + "','" + PlanEndDate + " ',' " + EndDate + "','" + Re + "'," + ProjectID + "," + ProjectProfessionalID + "," + DirectorID + ")");
                conn.Open();
                SqlCommand command = new SqlCommand(strSql.ToString(), conn);
                command.ExecuteNonQuery();
                conn.Close(); 
    本人试了一下没有错
      

  7.   

    看著都頭暈,調試的時候把拼起來的sql語句放查詢分析器裏面試試吧
      

  8.   

    你是在哪个步骤执行正确?  
    自己先断点找出插入数据库的SQL语句. 看那个执行有没有错误.
    要不就是你数据库的字段与插入字段的格式不匹配,要不就是你要插入的数据没处理好.
      

  9.   

     strSql.Append(SurveyTaskName + "','" + BeginDate + "','" + PlanEndDate + " ',' " + EndDate + "','" + Re + "'," + ProjectID + "," + ProjectProfessionalID + "," + DirectorID + ")");
    是不是少了个单引号啊?
    strSql.Append("'" + SurveyTaskName + "','" + BeginDate + "',……
    试试
      

  10.   

    你这样的代码, 人家不愿意看, 即使你用StringBuilder, 也应该
    StringBuilder sb=new StringBuilder();
    sb.Append(string.Format("insert into xxx (x,x,x) values({0},{1},{2})",x,x,x));这样, 好检查错误, 
    其次, 你出错了, 要断点一下, 将sb的最终字符串贴出来, 这样, 人家才好看嘛
      

  11.   

    确认BeginDate不为空,且为有效的日期值。
      

  12.   


    你的BeginDate有值否???
    还有有值的话,格式是否正确??
    model.BeginDate在实体类中BeginDate是神马类型,数据库中是DateTime类型的,检查下实体类中的类型
    还有就是什么单引号,逗号字符啥的仔细检查一下
      

  13.   

      StringBuilder strSql = new StringBuilder();
                strSql.Append("insert into SurveyTaskInfo (");
                strSql.Append("SurveyTaskName,BeginDate,PlanEndDate,EndDate,Re,ProjectID,ProjectProfessionalID,DirectorID)");
                strSql.Append(" values(");
                strSql.Append(model.SurveyTaskName + ",'" + model.BeginDate + "','" + model.PlanEndDate + " ','" + model.EndDate + "','" + model.Re + "'," + model.ProjectID + "," + model.ProjectProfessionalID + "," + model.DirectorID + ")");
      

  14.   

    1.打印插入的sql语句,查看。
    2,查看model中的BeginDate 字段类型
      

  15.   

    sql语句打出来,放到数据库执行一下,如果不行就是程序中的原因