private void updata_Click(object sender, EventArgs e)
        {
            sqlInsertCommand.Parameters.Clear();
            sqlInsertCommand.CommandType = CommandType.Text;
            sqlInsertCommand.CommandText = "select count(*) from XS_KC WHERE XS_KC.XH='" + cmbXH.Text + "'AND XS_KC.KCH=(SELECT KCH from KC WHERE KCM='" + cmbKCM.Text + "')";
            try
            {
                sqlConnection1.Open();
                int cnt = (int)sqlInsertCommand.ExecuteScalar();
                if (cnt == 1)
                {
                    sqlInsertCommand.CommandText = "update XS_KC SET XS_KC.CJ='" + tbCJ.Text + "'WHERE XS_KC.XH='" + cmbXH.Text + "'AND XS_KC.KCH=(SELECT KCH FROM KC WHERE KCM='" + cmbKCM.Text + "')";
                }
                else
                {
                    sqlSelectCommand1.Parameters.Clear();
                    sqlSelectCommand1.CommandType = CommandType.Text;
                    sqlSelectCommand1.CommandText = "select KCH FROM KC WHERE KCM='" + cmbKCM.Text + "'";
                    sqlInsertCommand.CommandText = "INSERT INTO XS_KC VALUES('" + cmbXH.Text.Trim() + "'," + sqlSelectCommand1.ExecuteScalar() + "," + int.Parse(tbCJ.Text.Trim()) + ")";
                }                sqlInsertCommand.ExecuteNonQuery();
            }
            finally
            {
                sqlConnection1.Close();
            }
        }
sqlInsertCommand.ExecuteNonQuery();    '.' 附近有语法错误。 

解决方案 »

  1.   

     sqlInsertCommand.CommandText = "select count(*) from XS_KC WHERE XH='" + cmbXH.Text + "' AND KCH=(SELECT KCH from KC WHERE KCM='" + cmbKCM.Text + "')";
      

  2.   

      sqlInsertCommand.CommandText = "update XS_KC SET CJ='" + tbCJ.Text + "' WHERE XH='" + cmbXH.Text + "' AND KCH=(SELECT KCH FROM KC WHERE KCM='" + cmbKCM.Text + "')";注意空格
      

  3.   

    断点,把 sqlInsertCommand.CommandText 内容拷贝出来检查下。
    我现在看觉得是: 'WHERE XS_KC.XH=' Where前面少个空格。另外,拼字符串,就不要再转成int了。
    int.Parse(tbCJ.Text.Trim())  不要 int.Parse
      

  4.   

    断点,把 sqlInsertCommand.CommandText 内容拷贝出来检查下。
    我现在看觉得是: 'WHERE XS_KC.XH=' Where前面少个空格。另外,拼字符串,就不要再转成int了。
    int.Parse(tbCJ.Text.Trim()) 不要 int.Parse
      

  5.   

    SQL语句不正确基本的自己检查下~~~
      

  6.   

    "select count(*) from XS_KC WHERE XS_KC.XH='" + cmbXH.Text + "'AND XS_KC.KCH=(SELECT KCH from KC WHERE KCM='" + cmbKCM.Text + "')";
    记得前些日子有人发帖特意指了一下这样的SQL语句写法的问题,虽然不推荐文章中的format但总比这样写好的多
      

  7.   

    建议以后别这么拼了。
    用string.format吧。你这么拼SQL不仔细的话很容易出错
      

  8.   

    sqlInsertCommand.CommandText = "select count(*) from XS_KC WHERE XS_KC.XH='" + cmbXH.Text + "' AND XS_KC.KCH=(SELECT KCH from KC WHERE KCM='" + cmbKCM.Text + "')";
    string.format或使用sqlparameter参数化操作
      

  9.   

    cmbKCM.Text 中的内容可能有错,检查一下
      

  10.   

    各个“*.Text” 中的内容可能有错,检查一下
      

  11.   

      F11 出来的sql 放入 查询分析器试试看看就明白咯、
      

  12.   


    XS_KC.CJ='" + tbCJ.Text + "'WHERE XS_KC.XH
    //缺少空格