Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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# 使用SqliteDataAdapter更新表_C#_Visual Studio_Sqlite_Datagridview - Fatal编程技术网

C# 使用SqliteDataAdapter更新表

C# 使用SqliteDataAdapter更新表,c#,visual-studio,sqlite,datagridview,C#,Visual Studio,Sqlite,Datagridview,在datagridview中更新视图时,我遇到了一些问题。My函数成功地从数据库中删除所选行,但DataAdapter未填充datatable dt。当添加行时,具有相同结构的函数可以完美地工作 private string ConString; private SQLiteCommand cmd; DataTable dt = new DataTable(); SQLiteConnection sql_con; SQLiteDataAdapter DB

在datagridview中更新视图时,我遇到了一些问题。My函数成功地从数据库中删除所选行,但DataAdapter未填充datatable dt。当添加行时,具有相同结构的函数可以完美地工作

    private string ConString;

    private SQLiteCommand cmd;
    DataTable dt = new DataTable();
    SQLiteConnection sql_con;
    SQLiteDataAdapter DB;


    // Function to delete rows
    public void DeleteRow(string value)
    {
        string sqlStatement = "DELETE FROM Trades WHERE ID = " + value;
        try
        {
            sql_con = new SQLiteConnection(ConString);

            sql_con.Open();
            cmd = sql_con.CreateCommand();
            cmd.CommandText = sqlStatement;
            cmd.ExecuteNonQuery();
            DB = new SQLiteDataAdapter();
            dt.Clear();
            DB.Fill(dt);
        }
        finally
        {
            sql_con.Close();
        }
    }

因为您的
DB
中没有任何数据。它没有任何
SELECT
语句或其他任何语句。。您希望哪些数据准确地填充数据表?学习。这种类型的字符串连接对攻击是开放的。还可以使用
using
语句自动处理连接、命令和适配器,而不是手动调用
Close
dispose
方法。为什么每次都重新创建DataAdapter?dataadapter的含义-它总是相同的。您只需为适配器指定更新、插入和删除命令。适配器的Update方法将为dt中具有适当状态的每一行调用这些命令。完全按照以下顺序:GUI中的事件更改DataTable或DataSet,DataAdapter将更改传输到数据库。