类型为' System.Data.SQLite.SQLiteException'的未处理异常

时间:2016-08-09 09:01:07

标签: c# winforms sqlite

我正在开发一个C#应用程序,它从文本字段中获取一些数据,一旦点击了保存按钮,就可以将数据保存到SQLite数据库中。但是当我点击保存按钮时出现错误。我试过在线搜索解决方案。但没有成功。我一直在这行中得到错误:

sql_cmd.ExecuteNonQuery();

这是我得到的错误

  

未处理的类型' System.Data.SQLite.SQLiteException'发生在System.Data.SQLite.dll中   附加信息:SQL逻辑错误或缺少数据库
  没有这样的表:信息

这是我的代码

private SQLiteConnection sql_con;
private SQLiteCommand sql_cmd;
private SQLiteDataAdapter DB;
private DataSet DS = new DataSet();
private DataTable DT = new DataTable();

//private Container components = null;
public EnterDataFrm()
{
    InitializeComponent();
}

//method to set the coonection string
private void SetConnection()
{
    try
    {
        sql_con = new SQLiteConnection(@"Data Source=C:\Users\josriskandarajah\Documents\Sample Projects\sqlite\sqlite\sqlite\bin\TestDb.sqlite;Version=3;New=False;Compress=True;");
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

//method for executing query
private void ExecuteQuery(string txtQuery)
{
    SetConnection();
    sql_con.Open();

    sql_cmd = sql_con.CreateCommand();
    sql_cmd.CommandText = txtQuery;

    sql_cmd.ExecuteNonQuery();
    sql_con.Close();
}

private void Add()
{
    string txtSQLQuery = "insert into Info (ID,FirstName,LastName,Age) values ('" + this.txtID.Text + "','" + this.txtFirstName.Text + "','" + this.txtLastName.Text + "','" + this.txtAge.Text + "')";
    ExecuteQuery(txtSQLQuery);
}


private void btnSave_Click(object sender, EventArgs e)
{
    Add();
}

1 个答案:

答案 0 :(得分:0)

我认为您还没有使用ID,FirstName,LastName,Age字段创建表名Info。还要检查数据源路径是否存在。

创建像这样的表格:

string sql ="CREATE TABLE `Info` (
    `ID`    INTEGER PRIMARY KEY AUTOINCREMENT,
    `FirstName` TEXT,
    `LastName`  TEXT,
    `Age`   INTEGER
)";

或者您可以使用** DB Browser for SQLite **工具来创建表格。