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

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日

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型