none
關於sql ExecuteNonQuery 的語法不正確問題 RRS feed

  • 問題

  • 想麻煩哪位大大可以幫我解決問題,謝謝

    在程式執行時,完全建置成功,但是要寫

    入sql時,卻發生了【cmd.ExecuteNonQuery();    在接近',' 之處的語法不正確。】

    下面有標的紅色之處

     

     

    【程式碼】

    private string GetSqlStr(string str)
            {
                return str.Replace("'" , "''");
            }

         
            private int CheckInt(string str)
            {
                try
                {
                    return int.Parse(str);
                }
                catch
                {
                    return 0;
                }
            }

    private void btnadd_Click(object sender, EventArgs e)
            {
                string connStr, insertCmd;
                connStr = "Server=localhost;database=TaiwanHR;uid=james;pwd=;";
                insertCmd = "Insert Into tblMember(ID,CName, EName,SID,Passport,Sex,Birthday,BPlaceID,ContactCityID,ContactCountyID,ContactZipCode,ContactAddress,RegisterCityID,RegisterCountyID,Register.ZipCode,RegisterAddress,Country1ID,Country2ID,Email,Married,JobTitleID,PartyID,TelCountryCode1,TelAreaCode1,TelNumber1,TelExt1,TelCountryCode2,TelAreaCode2,TelNumber2,TelExt2,CellNumber1,CellNumber2,GradeID,SchoolID,,Department,RoleID,RoleID,RoleOther,SpecialtyOther,Memo,CreateDateTime,LogInsert,LogUpdate,Logdelete,RID) Values('" + GetSqlStr(Member.Text) + "' , '" + GetSqlStr(CName.Text) + "' , '" + GetSqlStr(EName.Text) + "' , '" + GetSqlStr(SID.Text) + "' , '" + GetSqlStr(Passport.Text) + "' , '" + GetSqlStr("?") + "' , '" + GetSqlStr(Birthday.Text) + "' , '" + GetSqlStr(Place.ValueMember) + "' , '" + GetSqlStr(ContactCity.ValueMember) + "' , '" + GetSqlStr(ContactCounty.ValueMember) + "' , '" + GetSqlStr(ContactZipCode.Text) + "' , '" + GetSqlStr(ContactAddress.Text) + "' , '" + GetSqlStr(RegisterCity.ValueMember) + "' , '" + GetSqlStr(RegisterCounty.ValueMember) + "' , '" + GetSqlStr(RegisterZipCode.Text) + "' , '" + GetSqlStr(RegisterAddress.Text) + "' , '" + GetSqlStr(country1.ValueMember) + "' , '" + GetSqlStr(country2.ValueMember) + "' , '" + GetSqlStr(Email.Text) + "' , '" + GetSqlStr(Married.Text) + "' , '" + GetSqlStr(JobTitle.ValueMember) + "' , '" + GetSqlStr(Party.ValueMember) + "' , '" + GetSqlStr(TelCountryCode1.Text) + "' , '" + GetSqlStr(TelAreaCode2.Text) + "' , '" + GetSqlStr(TelNumber1.Text) + "' , '" + GetSqlStr(TelExt1.Text) + "' , '" + GetSqlStr(TelCountryCode2.Text) + "' , '" + GetSqlStr(TelAreaCode2.Text) + "' , '" + GetSqlStr(TelNumber2.Text) + "' , '" + GetSqlStr(TelExt2.Text) + "' , '" + GetSqlStr(celephone1.Text) + "' , '" + GetSqlStr(celephone2.Text) + "' , '" + GetSqlStr(GradeShool.ValueMember) + "' , '" + GetSqlStr(Shool.ValueMember) + "' , " + GetSqlStr(Department.Text) + " )";
                SqlConnection conn;
                SqlCommand cmd;
                conn = new SqlConnection(connStr);
                conn.Open();
                cmd = new SqlCommand(insertCmd, conn);
                cmd.ExecuteNonQuery();<----------------------------發生錯誤
                conn.Close();
            }

    2006年10月26日 下午 08:07

解答

  • 建議你在 cmd.ExecuteNonQuery 前

    用 Debug.WriteLine 把 connStr, insertCmd 印出來,並貼到板上,才好討論。

    註:資料來源、資料庫名、帳號、密碼,建議自行確認後人工遮罩,避免資安問題。

    2006年10月27日 上午 12:08
    版主
  • HI,

    [在接近',' 之處的語法不正確]這種錯誤都是SQL敘述不正確, 所以您可以用DEBUG的方式檢驗組合之後的SQL敘述的正確性, 就可以抓到錯誤了

    tihs

    2006年10月27日 上午 12:43

所有回覆

  • 建議你在 cmd.ExecuteNonQuery 前

    用 Debug.WriteLine 把 connStr, insertCmd 印出來,並貼到板上,才好討論。

    註:資料來源、資料庫名、帳號、密碼,建議自行確認後人工遮罩,避免資安問題。

    2006年10月27日 上午 12:08
    版主
  • HI,

    [在接近',' 之處的語法不正確]這種錯誤都是SQL敘述不正確, 所以您可以用DEBUG的方式檢驗組合之後的SQL敘述的正確性, 就可以抓到錯誤了

    tihs

    2006年10月27日 上午 12:43