菜菜吃菜 2022-03-12 12:55 采纳率: 57.5%
浏览 89
已结题

winform 多个查询结果显示到datagridview

表1 查询出ID值,有5行怎样将5行数据读取出去,将5行ID值 作为条件向表2查询(同服务器,不同数据库),得到表2所有结果显示到datagridview,怎样实现呢?

  • 写回答

6条回答 默认 最新

  • ilmss 2022-03-15 09:50
    关注

    Step 1. 添加引用System.Data.SQLite. 注意需要复制SQLite.Interop.dll至运行目录下;
    Step 2. 定义变量

    public partial class Form1 : Form
        {
            SQLiteConnection mConn;
            SQLiteDataAdapter mAdapter;
            DataTable mTable;
            public Form1()
            {
                InitializeComponent();
            }
      }
    

    Step 3. 连接数据库,并查找数据库中表显示到cboTables

    private void Form1_Load(object sender, EventArgs e)
            {
                //连接数据库.
                string mDbPath = Application.StartupPath + "/northwind.db";
                //如果数据库不存在,则自动创建.
                mConn = new SQLiteConnection("Data Source=" + mDbPath);
     
               //打开数据库文件.
                mConn.Open();
     
                //创建表[Test Table].
                // id        - Unique Counter - Key Field (Required in any table)
                // FirstName - Text
                // Age       - Integer
                using (SQLiteCommand mCmd = new SQLiteCommand
                    ("CREATE TABLE IF NOT EXISTS [Test Table] " +
                     "(id INTEGER PRIMARY KEY AUTOINCREMENT, 'FirstName' TEXT, 'Age' INTEGER);",
                     mConn))
                {
                    mCmd.ExecuteNonQuery();
                }
               
                
                //获取数据库中表.
                //表 "Tables"中字段 "TABLE_NAME" 包含所有表名信息.
                using (DataTable mTables = mConn.GetSchema("Tables")) // "Tables"包含系统表详细信息;
                {
                    for (int i = 0; i < mTables.Rows.Count; i++)
                    {
                        cboTables.Items.Add(mTables.Rows[i].ItemArray[mTables.Columns.IndexOf("TABLE_NAME")].ToString());
                    }
                    if (cboTables.Items.Count > 0)
                    {
                        cboTables.SelectedIndex = 0; // 默认选中第一张表.
                    }
                }
               
            }
    
    

    Step 4. 选择cboTables中表名,点击Ok,获取该表详细信息显示到grdDetail中。

    private void btnOk_Click(object sender, EventArgs e)
            {
                mAdapter = new SQLiteDataAdapter("SELECT * FROM [" + cboTables.Text + "]", mConn);
                mTable = new DataTable(); // Don't forget initialize!
                mAdapter.Fill(mTable);
     
                // 绑定数据到DataGridView
                grdDetail.DataSource = mTable;
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月12日

悬赏问题

  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader
  • ¥45 谷歌浏览器出现开发者工具无法显示已创建的,但您可以调试已部署的代码。 状态代码 404, net::ERR HTTP RESPONSE CODE FAILURE
  • ¥15 chatgpt网页版侧边栏和模型切换点击没反应怎么办
  • ¥15 如何解决蓝牙通话音频突发失真问题
  • ¥15 安装opengauss数据库报错
  • ¥15 【急】在线问答CNC雕刻机的电子电路与编程
  • ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
  • ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
  • ¥15 Python pandas