【问题标题】:There was an error parsing the query.when retrieving data from a .sdf-file解析查询时出错。从 .sdf 文件中检索数据时
【发布时间】:2013-05-24 17:30:59
【问题描述】:

我正在使用 Visual Studio 2008 用 C# 编写程序,在从 .sdf 文件中检索数据时出错

解析SqlCeConnection中的查询时出错

我的代码是

SqlCeConnection conn = new SqlCeConnection(connStr);
SqlCeCommand cmd = new SqlCeCommand();
DataSet ds = new DataSet();
SqlCeDataAdapter da;

try
{
    conn.Open();
    cmd = conn.CreateCommand();

    if(mode == "update")
       cmd.CommandText = "SELECT eq_id, description, bl_id, fl_id,  rm_id, modelno, category, eq_std, comments FROM eq where (isModified = 1) SELECT * FROM eq_log";
    else if(mode == "create")
       cmd.CommandText = "SELECT eq_id, description, bl_id, fl_id, rm_id, modelno, category, eq_std, comments FROM eq where (isModified = 2) SELECT * FROM eq_log";

    da = new SqlCeDataAdapter(cmd);
    da.Fill(ds);

    return ds;
}
catch (Exception db)
{
}

错误是:

解析查询时出错。[Token line number = 2,Token line offset = 1,Token in error = SELECT]

异常详细信息:System.Data.SqlServerCe.SqlCeException:解析查询时出错。解析查询时出错。 [令牌行号=2,令牌行偏移量=1,错误令牌=SELECT

【问题讨论】:

    标签: sql-server sql-server-ce


    【解决方案1】:

    您在 cmd.CommandText 中有 2 个选择语句。您需要用 ; 将它们分开。

    SqlCeConnection conn = new SqlCeConnection(connStr);
    SqlCeCommand cmd = new SqlCeCommand();
    DataSet ds = new DataSet();
    SqlCeDataAdapter da;
    
    try
    {
        conn.Open();
        cmd = conn.CreateCommand();
    
        if(mode == "update")
           cmd.CommandText = "SELECT eq_id, description, bl_id, fl_id,  rm_id, modelno, category, eq_std, comments FROM eq where (isModified = 1); SELECT * FROM eq_log";
        else if(mode == "create")
           cmd.CommandText = "SELECT eq_id, description, bl_id, fl_id, rm_id, modelno, category, eq_std, comments FROM eq where (isModified = 2); SELECT * FROM eq_log";
    
        da = new SqlCeDataAdapter(cmd);
        da.Fill(ds);
    
        return ds;
    }
    catch (Exception db)
    {
    }
    

    告诉我这是否适合你。

    【讨论】:

      【解决方案2】:

      对于 SQL Server Compact,每个命令只能有一个 SELECT,因此必须返回两个 DataSet/DataTables

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多