SQL查询中的令牌错误

时间:2014-01-22 10:05:27

标签: c# sql

有人可以帮我解决这个错误吗?

  

解析查询时出错。 [令牌行号= 1,令牌行偏移= 628,令牌错误=数据]

private DateTime data()
{
    DateTime datasot = DateTime.Now;
    string d = datasot.ToString("M/d/yyyy");
    DateTime dd = DateTime.Parse(d);
    return dd;
}

string komanda = "UPDATE ditari SET id=@id, namazisabahut=@namazisabahut, namazidrekes=@namazidrekes," +
        "namaziakshamit=@namaziakshamit, namaziikindise=@namaziikindise, namazijacise=@namazijacise, dymbedhjeterekatesunnet=@dymbedhjeterekatesunnet," +
        "namaznate=@namaznate, leximikuranit=@leximikuranit, ndegjimidersit=@ndegjimidersit, mekatet=@mekatet," +
        "mesimilenda=@mesimilenda, mesimior=@mesimior, mesimipershkrimi=@mesimipershkrimi, akeniqenepune=@akeniqenepune," +
        "punepershkrimi=@punepershkrimi,pershkrimishkurterditor=@pershkrimishkurterditor,dhikrimengjesitdhembremjes=@dhikrimengjesitdhembremjes," +
        "estagfirullah=@estagfirullah, salavatet=@salavatet" +
        "WHERE data='"+data()+"'";

SqlCeConnection sq = new SqlCeConnection(Connection.connectionstring);
SqlCeCommand sc = new SqlCeCommand(komanda, sq);
try
{
    sq.Open();
    sc.Parameters.AddWithValue(@"id", Qasja.ID);
    sc.Parameters.AddWithValue(@"namazisabahut", cbnamazisabahut.SelectedItem.ToString());
    sc.Parameters.AddWithValue(@"namazidrekes", cbnamazidrekes.SelectedItem.ToString());
    sc.Parameters.AddWithValue(@"namaziikindise", cbnamaziikindise.SelectedItem.ToString());
    sc.Parameters.AddWithValue(@"namaziakshamit", cbnamaziakshamit.SelectedItem.ToString());
    sc.Parameters.AddWithValue(@"namazijacise", cbnamazijacise.SelectedItem.ToString());

    sc.Parameters.AddWithValue(@"dymbedhjeterekatesunnet", chkdymbedhjetrekatesunnet.CheckState);
    sc.Parameters.AddWithValue(@"namaznate", chkNamazNate.CheckState);
    sc.Parameters.AddWithValue(@"leximikuranit", chkLeximiKuranit.CheckState);
    sc.Parameters.AddWithValue(@"ndegjimikuranit", chkLeximiKuranit.CheckState);
    sc.Parameters.AddWithValue(@"ndegjimidersit", chkNdegjimiDersit.CheckState);
    sc.Parameters.AddWithValue(@"mekatet", txtpershkrimimekatit.Text);
    sc.Parameters.AddWithValue(@"mesimilenda", txtmesimilenda.Text);
    sc.Parameters.AddWithValue(@"mesimior", nud_saorkenimsu.Value);
    sc.Parameters.AddWithValue(@"mesimipershkrimi", txtpershkrimiMsimit.Text);
    sc.Parameters.AddWithValue(@"akeniqenepune", chkAkeniqenepune.CheckState);
    sc.Parameters.AddWithValue(@"punepershkrimi", txtPershkrimiPuna.Text);
    sc.Parameters.AddWithValue(@"pershkrimishkurterditor", richtextPershkrimiDitor.Text);
    sc.Parameters.AddWithValue(@"dhikrimengjesitdhembremjes", cbdhikrimengjesitmbremjes.SelectedItem.ToString());
    sc.Parameters.AddWithValue(@"estagfirullah", chkEstigfar.CheckState);
    sc.Parameters.AddWithValue(@"salavatet", chksalavatet.CheckState);
    sc.ExecuteNonQuery();
    sc.Dispose();
    sq.Close();

3 个答案:

答案 0 :(得分:2)

查询中的“WHERE”之前缺少空格。

答案 1 :(得分:1)

就是这样。

"estagfirullah=@estagfirullah, salavatet=@salavatet" +
"WHERE data='"+data()+"'";

评估为estagfirullah=@estagfirullah, salavatet=@salavatetWHERE data=无效。在行的末尾每个"之前放置空格。

答案 2 :(得分:0)

您错过了

附近的空间

所以你的查询看起来像这样

enter image description here

因此无法解析。

你必须像这样改变

"UPDATE ditari SET id=@id, namazisabahut=@namazisabahut, namazidrekes=@namazidrekes," +
        "namaziakshamit=@namaziakshamit, namaziikindise=@namaziikindise, namazijacise=@namazijacise, dymbedhjeterekatesunnet=@dymbedhjeterekatesunnet," +
        "namaznate=@namaznate, leximikuranit=@leximikuranit, ndegjimidersit=@ndegjimidersit, mekatet=@mekatet," +
        "mesimilenda=@mesimilenda, mesimior=@mesimior, mesimipershkrimi=@mesimipershkrimi, akeniqenepune=@akeniqenepune," +
        "punepershkrimi=@punepershkrimi,pershkrimishkurterditor=@pershkrimishkurterditor,dhikrimengjesitdhembremjes=@dhikrimengjesitdhembremjes," +
        "estagfirullah=@estagfirullah, salavatet=@salavatet " +
        " WHERE data='"+data()+"'";

现在看起来像这样

enter image description here

希望这能帮到你