列名 'sddjsj' 无效。
列名 'szt' 无效。
列名 'dzt' 无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 'sddjsj' 无效。
列名 'szt' 无效。
列名 'dzt' 无效。源错误: 
行 279:            {
行 280:             PrepareCommand (cmd,conn,null,cmdType,cmdText,commandParameters);
行 281:                int val=cmd.ExecuteNonQuery();
行 282:                cmd.Parameters.Clear();
行 283:                return val;
 源文件: f:\个人信息\毕业设计\XSGYGL\App_Code\SQLHelper.cs    行: 281 堆栈跟踪: 
[SqlException (0x80131904): 列名 'sddjsj' 无效。
列名 'szt' 无效。
列名 'dzt' 无效。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +857418
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +735030
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1838
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +149
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +886
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +415
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +135
   SQLHelp.SQLHelper.ExecuteNonQuery(String connectionString, CommandType cmdType, String cmdText, SqlParameter[] commandParameters) in f:\个人信息\毕业设计\XSGYGL\App_Code\SQLHelper.cs:281
   apartments_waterpower_RegisterWP.Button1_Click(Object sender, EventArgs e) in f:\个人信息\毕业设计\XSGYGL\apartments\waterpower\RegisterWP.aspx.cs:48
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102出现这样的问题怎么修改?我之前这样向数据库中添加数据都成功了的,但现在我把数据库中SDWX的字段修改了有的删除了,然后添加了'szt''dzt'两个字段
 

解决方案 »

  1.   

    仔细看看sql语句  是否查询了指定列
      

  2.   


    这应该是你的sql条件要加单引号的没加单引号造成的
      

  3.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using SQLHelp;
    using System.Data.SqlClient;public partial class apartments_waterpower_RegisterWP : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {        string qshsd = this.DqshSD.SelectedValue;
            string sddjsjsd = this.TsddjsjSD.Text;
            string sztsd = this.TsztSD.Text;
            string dztsd = this.TdztSD.Text;
            string sql = "select count(*) from SDWX where qsh=@qsh";
            SqlParameter[] param = new SqlParameter[]{new SqlParameter("@qsh",SqlDbType.Char)
            };
            param[0].Value = qshsd;        int usercount = ((int)(SQLHelper.ExecuteScalar(SQLHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, param)));        if (usercount == 0)
            {
                string insertsql = "insert into WPBX(qsh,sddjsj,szt,dzt)";
                insertsql += "values (@qsh,@sddjsj,@szt,@dzt)";
                SqlParameter[] insertparam = new SqlParameter[]{
                    new SqlParameter("@qsh",SqlDbType.Char),
                    new SqlParameter("@sddjsj",SqlDbType.DateTime),
                    new SqlParameter("@szt",SqlDbType.Int),
                    new SqlParameter("@dzt",SqlDbType.Int)
            };
                insertparam[0].Value = qshsd;
                insertparam[1].Value = sddjsjsd;
                insertparam[2].Value = sztsd;
                insertparam[3].Value = dztsd;
                if (SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionStringLocalTransaction, CommandType.Text, insertsql, insertparam) > 0)
                {
                    Response.Write("<script language='javascript'>alert('添加成功!');</script>");
                }
                else
                {
                    Response.Write("<script language='javascript'>alert('添加失败!');</script>");
                }
            }
            else
            {
                Response.Write("<script language='javascript'>alert('用户已存在!');</script>");        }
            this.GridView1.DataBind();
        }
        protected void BrespectSD_Click(object sender, EventArgs e)
        {
          this.TsddjsjSD.Text="";
          this.TsztSD.Text="";
          this.TdztSD.Text="";
        }
    }
    这是我在一个按钮里写的代码
      

  4.   

    insert into WPBX(qsh,sddjsj,szt,dzt) values (@qsh,@sddjsj,@szt,@dzt)
    数据库表里面没有这些字段吧?sddjsj,szt,dzt
      

  5.   

    "insert into WPBX(qsh,sddjsj,szt,dzt)";中表名WPBX这个应该是SDWX吧,我猜的
      

  6.   

    数据库设计字段有问题吧.,看你的code,木发现有什么异常.不过写的冗余太多.把你的数据库设计贴出来
      

  7.   

    这个问题解决了,真的是我表名写错了
    我是初学者,请你们再帮我解决一个问题
    我想单击一个BUTTON按钮将一张表里所有的记录都删去
      

  8.   

    delete * from yourtable
      

  9.   

    在ASP.NET的一个按钮里怎么写代码
      

  10.   

    string sql = "delete from tableName";
    int result = SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, null);
      if (result > 0)
      {
      Response.Write("<script language='javascript'>alert('删除成功!');</script>");
      }
      else
      {
      Response.Write("<script language='javascript'>alert('删除失败!');</script>");
      }
      

  11.   

    呵呵,我遇上了类似的问题,用这个方法解决了。
    就是比如说要写成这样 :
    "select 要查询的值的列名 from 表 where 作为查询条件的列名 = '"+引用的变量名+"'"