Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从SQLite数据库中删除行_C#_Sqlite_Row_Sql Delete - Fatal编程技术网

C# 无法从SQLite数据库中删除行

C# 无法从SQLite数据库中删除行,c#,sqlite,row,sql-delete,C#,Sqlite,Row,Sql Delete,我在尝试从sqlite数据库中删除一行时遇到了一个小问题 我将数据库设置为: CREATE TABLE IF NOT EXISTS patient ( patient_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, vorname VARCHAR(100) NOT NULL,nachname VARCHAR(100) NOT NULL,adresse VARCHAR(100) NOT NULL,ort VARCHAR(100) NOT NULL,pl

我在尝试从sqlite数据库中删除一行时遇到了一个小问题

我将数据库设置为:

CREATE TABLE IF NOT EXISTS patient ( patient_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, vorname VARCHAR(100) NOT NULL,nachname VARCHAR(100) NOT NULL,adresse VARCHAR(100) NOT NULL,ort VARCHAR(100) NOT NULL,plz INTEGER NOT NULL,geburtstag DATE NOT NULL);
public void deletePatientById(long id)
        {
            string deleteQuery = "DELETE FROM patient WHERE patient_id="+id.ToString()+";";
            SQLiteCommand command = new SQLiteCommand(deleteQuery, connection);
            command.ExecuteNonQuery();
            command.Dispose();
            MessageBox.Show("Patient: " + id.ToString() + " gelöscht");
        }
其中肯定有数据,我尝试删除一行,如下所示:

CREATE TABLE IF NOT EXISTS patient ( patient_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, vorname VARCHAR(100) NOT NULL,nachname VARCHAR(100) NOT NULL,adresse VARCHAR(100) NOT NULL,ort VARCHAR(100) NOT NULL,plz INTEGER NOT NULL,geburtstag DATE NOT NULL);
public void deletePatientById(long id)
        {
            string deleteQuery = "DELETE FROM patient WHERE patient_id="+id.ToString()+";";
            SQLiteCommand command = new SQLiteCommand(deleteQuery, connection);
            command.ExecuteNonQuery();
            command.Dispose();
            MessageBox.Show("Patient: " + id.ToString() + " gelöscht");
        }
问题是,VS告诉我,没有名为
patient\u id
的列。但事实上,就我所能看到的范围而言


有人知道这里可能出了什么问题吗?

您是否指向正确的文件,该文件是否有表格

创建文件和表

string file = @"C:\TestDB.sqlite";
conn = new SQLiteConnection(String.Format("Data Source={0};Version=3;", file));

if (!File.Exists(file))
{
    SQLiteConnection.CreateFile(file);
}

string createTable = "CREATE TABLE IF NOT EXISTS patient ( patient_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, vorname VARCHAR(100) NOT NULL,nachname VARCHAR(100) NOT NULL,adresse VARCHAR(100) NOT NULL,ort VARCHAR(100) NOT NULL,plz INTEGER NOT NULL,geburtstag DATE NOT NULL);";

conn.Open();

using (SQLiteCommand cmd = conn.CreateCommand())
{
    cmd.CommandText = createTable;
    cmd.ExecuteNonQuery();
}

conn.Close();
删除

public void deletePatientById(long id)
{
    conn.Open();
    using (SQLiteCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = String.Format("DELETE FROM patient WHERE patient_id={0}", id);
        cmd.ExecuteNonQuery();
    }
    conn.Close();
    MessageBox.Show("Patient: " + id.ToString() + " gelöscht");
}

我现在自己找到了问题的答案


它似乎与下划线有关。我将
patient\u id
改为
id
,现在一切正常:)谢谢你的努力。

你能从patient表中发布列的名称吗?你可以在create语句中看到的名称,第一个实际上是patient\u id,这很奇怪,我使用你提供的示例没有问题。很高兴你让它工作了。