gpt4 book ai didi

c# - Finisar.SQLite.SQLiteException : SQL logic error or missing database: unrecognized token: "$"

转载 作者:行者123 更新时间:2023-12-01 23:34:02 25 4
gpt4 key购买 nike

我用VS2012开发了一个小小的C#/SQl应用程序,我会后悔一辈子,不管怎样,我完成了调试,一切正常,悲剧来了:没有安装发布工具。所以我尝试了发布选项等的一键式方式,并且我已经包含了.NET 4框架,但是当我测试时没有任何效果,并且安装程序说缺少框架和其他东西,所以回到我的实验室,我更改为VS2010从设置能力中受益...我做到了,对我来说,该应用程序也运行正常,并且安装也运行并安装了该应用程序。

现在我需要在另一台电脑上安装该应用程序,但它没有我的服务器,所以我切换到 sqlite。

这里出现了关于无法识别 token 的错误,因为我使用 sql 导入/导出向导从 excel 导入了数据库,它自动将表名写入“Archive$”,我现在无法烘焙到 xls 文件,并且我不知道如何在 db 文件中重命名它。这是我的问题。感谢您帮助我。

using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
using System.IO;
using System.Data.SqlClient;
using DgvFilterPopup;
using Finisar.SQLite;

namespace ExpertGeoMaster_v._1
{
public partial class Form1 : Form
{
DataTable DT = new DataTable();
DialogResult res;

public static string p = @"C:\Users\abdellaziz\Documents\Visual Studio 2010\Projects\ExpertGeoMaster v.1\ExpertGeoMaster v.1\bin\Debug\database.db";


public Form1()
{
InitializeComponent();

}


private void Form1_Load(object sender, EventArgs e)
{
using (SQLiteConnection cn = new SQLiteConnection(@"Data Source=./database.db;Version=2;New=True;Compress=True;"))
{
this.dataGridView1.SelectionMode =
DataGridViewSelectionMode.FullRowSelect;
SQLiteDataAdapter da = new SQLiteDataAdapter(@"Select * from Archive$", cn);
try
{
cn.Open();
da.Fill(DT);
this.dataGridView1.DataSource = DT;

}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
cn.Close();
}

最佳答案

标识符中通常不允许使用像 $ 这样的特殊字符。

如果您use quotes,您无论如何都可以使用它们:

new SQLiteDataAdapter(@"Select * from \"Archive$\"", cn);
new SQLiteDataAdapter(@"Select * from [Archive$]", cn);
new SQLiteDataAdapter(@"Select * from `Archive$`", cn);

关于c# - Finisar.SQLite.SQLiteException : SQL logic error or missing database: unrecognized token: "$",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25732286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com