C#编程代码如何从数据库中查询并把查询结果显示在dataGridView?

C#编程代码如何从数据库中查询并把查询结果显示在dataGridView?,第1张

最简单的

写一个数据查询类.然后调用xx.chaxun方法

窗体代码写以下这些就可以了

sql = "select * from xxxx"

Datatable dt = xx.chaxun(sql)

datagridview1.DataSource = dt

记得将datagridview里面的字段与表中的字段相关联

Dateset 或DataTable或集合进行数据绑定,如有什么问题,请继续追问 private DataSet ds = new DataSet()

private SqlDataAdapter adapter = new SqlDataAdapter()//创建数据适配器

SqlCommand com = new SqlCommand("select TeacGuid, TeacName as 姓名,TeacSex as 性 别,TeacSalary as 工资,TeacRemark as 备注 from Teachers", DBHelper.con)

adapter.SelectCommand = com

adapter.Fill(ds, "Teachers")//将按照条件查出来的Teachers表中信息填充到ds中

this.dataGridView1.DataSource = ds.Tables["Teachers"]附上一段用DataSet实现的代码。

针对DataGridView中已进行过数据绑定,即已向DataGridView中添加了一些数据,可以结合Linq查询,并让匹配查询的行高亮显示,具体实现如下:

using System

using System.Collections.Generic

using System.Linq

using System.Windows.Forms

namespace Maxes_PC_Client {

    public partial class frmWelcome : Form {

        private int beforeMatchedRowIndex = 0

        public frmWelcome()

        {

            InitializeComponent()

        }

        private void frmWelcome_Load(object sender, EventArgs e) {

            this.dataGridViewInit()

        }

        /// <summary>

        /// DataGridView添加数据、初始化

        /// </summary>

        private void dataGridViewInit() {

            Dictionary<String, String> map = new Dictionary<String, String>()

            map.Add("Lily", "22")

            map.Add("Andy", "25")

            map.Add("Peter", "24")

            // 在这里必须创建一个BindIngSource对象,用该对象接收Dictionary<T, K>泛型集合的对象

            BindingSource bindingSource = new BindingSource()

            // 将泛型集合对象的值赋给BindingSourc对象的数据源

            bindingSource.DataSource = map

            this.dataGridView.DataSource = bindingSource

        }

        private void SearchButton_Click(object sender, EventArgs e) {

            if (this.KeyWord.Text.Equals("")) {

                return

            }

            // Linq模糊查询

            IEnumerable<DataGridViewRow> enumerableList = this.dataGridView.Rows.Cast<DataGridViewRow>()

            List<DataGridViewRow> list = (from item in enumerableList

                                          where item.Cells[0].Value.ToString().IndexOf(this.KeyWord.Text) >= 0

                                          select item).ToList()

            // 恢复之前行的背景颜色为默认的白色背景

            this.dataGridView.Rows[beforeMatchedRowIndex].DefaultCellStyle.BackColor = System.Drawing.Color.White

            if (list.Count > 0) {

                // 查找匹配行高亮显示

                int matchedRowIndex = list[0].Index

                this.dataGridView.Rows[matchedRowIndex].DefaultCellStyle.BackColor = System.Drawing.Color.Yellow

                this.beforeMatchedRowIndex = matchedRowIndex

            }

        }

    }

}

datagridview1.dataresouce

=

ds.Tables[0]

或者你在sda.Fill(ds)时改为

sda.Fill(ds,"tableName")

然后datagridview1.dataresouce

=

ds.Tables["tableName"]即根据关键字索引来找到对应的DataTable

记住,DataSet相当于本地数据库

里面有

Tables集合,是一张张本地数据表DataTable,而GridView显示的正是DataTable,所以你只要对应到一张DataTable即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11660024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存