我正在开发一个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();
}
答案 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 **工具来创建表格。