c# datagridview与DataSet绑定, 列与数据库表里面的列一一对应

参考代码1:

自己模拟出数据,并分别对dataGridView赋值。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        DataTable tblDatas = new DataTable("Datas");
        private void Form1_Load(object sender, EventArgs e)
        {
            DataColumn dc = null;
            dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
            dc.AutoIncrement = true;//自动增加
            dc.AutoIncrementSeed = 1;//起始为1
            dc.AutoIncrementStep = 1;//步长为1
            dc.AllowDBNull = false;//

            dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

            DataRow newRow;
            for (int i = 0; i < 20; i++)
            {
                newRow = tblDatas.NewRow();
                newRow["Product"] = "大话西游";
                newRow["Version"] = "2.0";
                newRow["Description"] = "我很喜欢";
                tblDatas.Rows.Add(newRow);
            }

            newRow = tblDatas.NewRow();
            newRow["Product"] = "梦幻西游";
            newRow["Version"] = "3.0";
            newRow["Description"] = "比大话更幼稚";
            tblDatas.Rows.Add(newRow);
            dataGridView1.DataSource = tblDatas;
            //dataGridView1
        }

        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            //datagridview变化DataSet数据跟随变化;

            tblDatas.Rows[e.RowIndex][e.ColumnIndex] = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //这个是DataSet数据变化datagridview跟随变化;
            //这个要根据实际来的,这里只有修改dataSet中一个单元格的数据。
            tblDatas.Rows[5][1] = "5555555555";
        }
    }
}

参考代码2

手动分别赋值方式。

DataSet ds_sp = new DataSet();
DataTable dt_sp = new DataTable();

if (string.IsNullOrEmpty(strFilter))
{
strFilter = " 1=1";
}
dt_sp = DbHelper.getSqlTaskList(tablename, "*", sortExpr, this.SGVTask.PageSize, pageIndex, 0, strFilter, sortDirect);//Sql 中使用翻页函数

DataTable dtTask = dt_sp;

for (int i = 0; i < dtTask.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
dr["YMD"] = dtTask.Rows[i]["YMD"].ToString();
dr["SDSHAN"] = dtTask.Rows[i]["SDSHAN"].ToString();
dr["ABALPH"] = dtTask.Rows[i]["ABALPH"].ToString();
dr["XSJE"] = dtTask.Rows[i]["XSJE"].ToString();
dr["FenTan_Month"] = dtTask.Rows[i]["FenTan_Month"].ToString();
dr["Cont_KeBian"] = dtTask.Rows[i]["Cont_KeBian"].ToString();
dr["Contract_Num"] = dtTask.Rows[i]["Contract_Num"].ToString();
dr["FenTan_Mode"] = dtTask.Rows[i]["FenTan_Mode"].ToString();
dr["FenTan_BL_Je"] = dtTask.Rows[i]["FenTan_BL_Je"].ToString();
dr["CJ"] = dtTask.Rows[i]["CJ"].ToString();
dr["FixSmOrderNum"] = dtTask.Rows[i]["FixSmOrderNum"].ToString();
dr["ftfs"] = dtTask.Rows[i]["ftfs"].ToString();
dr["FTDAI"] = dtTask.Rows[i]["FTDAI"].ToString();
dr["DAIKM"] = dtTask.Rows[i]["DAIKM"].ToString();
dr["FTJIE"] = dtTask.Rows[i]["FTJIE"].ToString();
dr["JIEKM"] = dtTask.Rows[i]["JIEKM"].ToString();
dr["MEMO"] = dtTask.Rows[i]["MEMO"].ToString();
dt.Rows.Add(dr);
}
this.SGVTask.DataSource = dt;
this.SGVTask.DataBind();

参考方式3 映射方式:

先在DataGridView中定义一些列,将这些列的DataPropertyName设置为查询得到的数据库的返回的DataSet中相关DataTable的列名称。

具体的属性设置可参考本博客文章:C# DataGridView的列对象属性探讨 (未完待续)

参考

c# datagridview 如何与DataSet绑定实现如下目标

C#怎样使 dataGridView1显示数据的时候,dataGridView1的列与数据库表里面的列一一对应

时间: 2024-10-10 14:30:27

c# datagridview与DataSet绑定, 列与数据库表里面的列一一对应的相关文章

列式数据库与行式数据库分析

1,行式数据库 定义:存储格式按照'行'的方式把一行各个字段的数据存储在一起,一行行连续存储. 图 1 把一条数据的信息写到数据库中:或者对一条数据中的某些字段进行修改:或者删除整条数据一类的OLTP操作来说既直观也高效. 但是,在行式数据库上做一些报表.分析的时候,大家又发现这种存储格式使用效率不高.例如:统计各省份的销售额和利润同比变化:按照部门统计业绩完成情况等等,都是在其中某些字段上的操作,行式数据库不分情况一律按照页面读取数据的方式,在只分析销售额和利润的时候,把每一份合同的其他信息,

什么是行式数据库,什么是列式数据库

数据库以行.列的二维表的形式存储数据.可是却以一维字符串的方式存储.比例如以下面的一个表: EmpId Lastname Firstname Salary 1 Smith Joe 40000 2 Jones Mary 50000 3 Johnson Cathy 44000 这个简单的表包含员工代码(EmpId), 姓名字段(Lastname and Firstname)及工资(Salary). 这个表存储在电脑的内存(RAM)和存储(硬盘)中.尽管内存和硬盘在机制上不同,电脑的操作系统是以相同的

列式数据库的简单分析

转自:列式数据库的简单分析 这些天看数据仓库的内容,发现一个新内容——列式存储.曾经有想过把数据库行列转置作成索引,不过没有深想,没想到列式数据库已经开始发展起来了.首先看下WIKI上对列式数据库的解释: 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询.相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合与小批量的数据处理,常用于联机事务型数据处理.数据库以行.列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一个表:EmpI

DataGridView编辑后立即更新到数据库的两种方法

DataGridView控件是微软预先写好的一个显示数据的控件,功能非常强大,可以显示来自数据库表的数据和XML等其他来源的数据.最近在做一个迷你超市管理系统,要大量用到这个控件.所以花时间好好研究了下. 这是迷你超市管理系的库存数据DataGridView,用户一定会想如果能直接在DGV中修改数据就好了. 是的,这是一个很好的想法,这个功能微软早就帮我们想到了,现在可以使两种方法加以实现.下面就来介绍一下他们. 第一张方法:基于DataAdapter对象创建一个CommandBulider,用

DataGridView控件绑定数据源

前言: 最近听说DataGridView控件能直接绑定数据源.而不用穿越这层那层的忍辱负重.获取数据.真是高兴的屁颠屁颠的.后来一想二狗肯定不会弄.特意写了一个笨蛋版的教程--也算记录生活.欢度端午了.粽子就不送给大家了.但是大家可以找我来要呦!数量有限送完为止!--chenchen --步骤 1 添加控件 2 添加数据源 中间过程就是点下一步就不截图了.最后选择的这个是每次连接获取数据库数据的表和表的字段 3 三个组件意思 Adapter控件:连接数据库获取数据 DataSet:存放获取好的数

DataGridView,Dataset,DataTable,DataRow等使用心得

DataGridView的列编辑: Name:用于调用属性的时候用的,也可以不使用Name去调用,选择数字1,2,3...选择第1列,第2列,第3列. HeaderText:表头显示的名字方便用户使用. DataPropertyName:该列与绑定的表的哪个属性对应.一般情况编辑的列与绑定的表属性名一一对应. DataTable: 创建一张表: DataTable goodslist = new DataTable(); 为这张表添加列名(属性名):goodslist.Columns.Add("

查询数据库的所有列信息 sys.all_columns

一.Database.sys.tables 为每个表对象返回一行,当前仅用于 sys.objects.type = U 的表对象. 列名 数据类型 说明 <继承的列>   有关此视图所继承列的列表,请参阅sys.objects (Transact-SQL). lob_data_space_id int 一个非零值,是保存此表的 text.ntext 和 image 数据的磁盘空间(文件组或分区架构)的 ID. 0 = 表不包含 text.ntext 或 image 数据. filestream

C#操作Dataset数据集与SQLite数据库

近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘: 一.SQLite操作,直接贴代码,很简单: //创建一个数据库文件 string datasource=Application.StartupPath + "\\test.db"; System.Data.SQLite.SQLiteConnection.CreateFile(datasource); //连接数据库 System.Da

数据库表散列

http://dapple.iteye.com/blog/740338 数据库表散列: 思路:1.缩短查询耗时: 2.分拆表或者库,表小,查询自然快: 3.需要快速定位,hash算法可以做到这种(唯一)映射