sqlite搜索结果没办法导入vb.net



```vb.net
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If TextBox2.Text Or TextBox2.Text = Nothing Then
            MessageBox.Show("输入不能为空!")
        Else
            Dim com As Microsoft.Data.Sqlite.SqliteConnection = New Microsoft.Data.Sqlite.SqliteConnection()
            com.ConnectionString = "d:\nhg\sy.db"
            com.Open()
            Dim rq1 As String = TextBox2.Text
            Dim rq2 As String = TextBox3.Text
            Dim sql As String = "select sum(sy) from nhk where rq>'" + rq1 + "' and rq<='" + rq2 + "'"
            Dim com_m As New Microsoft.Data.Sqlite.SqliteCommand(sql, com)
            Dim dr As Microsoft.Data.Sqlite
            dr = com_m.ExecuteNonQuery()
            Dim dt As DataTable = New DataTable()
            dt.Load(dr)
            DataGridView1.DataSource = dt
            com.Close()
        End If
    End Sub
End Class

在这给代码中,貌似查询结果无法导出到插件。

img

请问怎么处理这个呢?

SqliteCommand.ExecuteNonQuery Method返回的是插入、更新或删除的行数,类型为Int32。
要获取数据,用SqliteDataAdapter().

Dim da As New SqliteDataAdapter(com_m)
Dim dt As New DataTable()
da.Fill(dt)

  • 这篇博客: SQLite.Net使用入门(三)【增删改查】中的 运行结果如图: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 这里写图片描述


  • 以下回答由chatgpt基于相关博客总结生成:

    在VB.NET中将SQLite搜索结果导入应用程序中涉及以下步骤:

    1.安装必要的NuGet包 因为SQLite默认不支持加密,所以要使用加密库SQLitePCLRaw.bundle_e_sqlcipher,还需要Microsoft.EntityFrameworkCore.Sqlite包。可以在NuGet包管理器中搜索并安装这些包。

    2.创建DbContext工厂类 在项目中添加一个DbContext工厂类,用于在迁移期间创建DbContext实例。可以使用以下代码:

    class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<SqliteContext>
    {
        public SqliteContext CreateDbContext(string[] args)
        {
          return new SqliteContext(a.ConnectionString);
        }
    }
    

    其中,SqliteContext是继承自Microsoft.EntityFrameworkCore.DbContext类的自定义DbContext类,a.ConnectionString是连接SQLite数据库的连接字符串。

    3.创建迁移 使用NuGet包管理器控制台(Alt + T,N,O)创建一个迁移版本,用于更新数据库。可以使用以下命令:

    Add-Migration init
    

    其中,init是你为迁移命名的标识符。在创建迁移版本之后,运行以下命令将迁移应用到数据库:

    Update-Database
    

    4.实现数据访问层 在应用程序中创建数据访问层(DAL)类,用于操作SQLite数据库。可以使用以下代码:

    Public Class DAL
        Private ReadOnly dbPath As String = "Data Source=" & System.IO.Path.Combine(Application.StartupPath, "mydatabase.db")
        Private conn As SQLiteConnection
    
        Public Sub New()
            conn = New SQLiteConnection(dbPath)
            conn.Open()
        End Sub
    
        Public Function GetDataTable(sql As String) As DataTable
            Dim da As New SQLiteDataAdapter(sql, conn)
            Dim dt As New DataTable
            da.Fill(dt)
            Return dt
        End Function
    
        Public Function ExecuteNonQuery(sql As String) As Integer
            Dim cmd As New SQLiteCommand(sql, conn)
            Return cmd.ExecuteNonQuery()
        End Function
    End Class
    

    其中,dbPath是SQLite数据库文件的路径,GetDataTable方法用于执行SELECT语句,ExecuteNonQuery方法用于执行INSERT、UPDATE和DELETE语句。

    5.在应用程序中使用数据访问层 在应用程序中使用上一步创建的DAL类来访问SQLite数据库。例如,可以使用以下代码从Students表中获取所有记录:

    Dim dal As New DAL
    Dim dt As DataTable = dal.GetDataTable("SELECT * FROM Students")