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
dc.AutoIncrementStep = ;//步长为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 = ; i < ; 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[][] = "";
}
}
}
参考代码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, , strFilter, sortDirect);//Sql 中使用翻页函数 DataTable dtTask = dt_sp; for (int i = ; 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的列与数据库表里面的列一一对应
c# datagridview与DataSet绑定, 列与数据库表里面的列一一对应的更多相关文章
- Hadoop HBase概念学习系列之HBase里的列式数据库(十七)
列式数据库,从数据存储方式上有别于行式数据库,所有数据按列存取. 行式数据库在做一些列分析时,必须将所有列的信息全部读取出来 而列式数据库由于其是按列存取,因此只需在特定列做I/O即可完成查询与分析, ...
- [置顶] DataGridView控件---绑定数据方法
DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增.删.改操作.今天将自己总结的增加数据的方法总结分 ...
- DataGridView编辑后立即更新到数据库的两种方法
DataGridView控件是微软预先写好的一个显示数据的控件,功能非常强大,可以显示来自数据库表的数据和XML等其他来源的数据. 方法一:基于DataAdapter对象创建一个CommandBuli ...
- DataGridView,Dataset,DataTable,DataRow等使用心得
DataGridView的列编辑: Name:用于调用属性的时候用的,也可以不使用Name去调用,选择数字1,2,3...选择第1列,第2列,第3列. HeaderText:表头显示的名字方便用户使用 ...
- 查询数据库的所有列信息 sys.all_columns
一.Database.sys.tables 为每个表对象返回一行,当前仅用于 sys.objects.type = U 的表对象. 列名 数据类型 说明 <继承的列> 有关此视图所继承 ...
- c# DataGridView在使用DataSource时,只显示指定的列或禁止自动生成列
可通过设置DataGridView控件的AutoGenerateColumns属性来处理. //禁止自动生成列,以下场景会用到:数据源的列超过需要展示的列 this.gridDevice.AutoGe ...
- 在SQL2008查找某数据库中的列是否存在某个值
在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型: ...
- mybatis高级(2)_数据库中的列和实体类不匹配时的两种解决方法_模糊查询_智能标签
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- C#操作Dataset数据集与SQLite数据库
近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘: 一.SQLite操作,直接贴代码,很简 ...
随机推荐
- 【面试题003】c数组做为参数退化的问题,二维数组中的查找
[面试题003]c数组做为参数退化的问题,二维数组中的查找 一,c数组做为参数退化的问题 1.c/c++没有记录数组的大小,因此用指针访问数组中的元素的时候,我们要确保没有超过数组的边界, 通过下面 ...
- A Step-by-Step Guide to Your First AngularJS App
What is AngularJS? AngularJS is a JavaScript MVC framework developed by Google that lets you build w ...
- struts2-2.3.4.1的struts-default.xml源码
<?xml version="1.0" encoding="UTF-8" ?> <!-- /* * $Id: struts-default.x ...
- java基础知识回顾之java Thread类学习(五)--java多线程安全问题(锁)同步的前提
这里举个例子讲解,同步synchronized在什么地方加,以及同步的前提: * 1.必须要有两个以上的线程,才需要同步. * 2.必须是多个线程使用同一个锁. * 3.必须保证同步中只能有一个线程在 ...
- APT攻击
http://netsecurity.51cto.com/art/201211/363040.htm
- 解决在windows的eclipse上面运行WordCount程序出现的一系列问题详解
一.简介 要在Windows下的 Eclipse上调试Hadoop2代码,所以我们在windows下的Eclipse配置hadoop-eclipse-plugin- 2.6.0.jar插件,并在运行H ...
- [杂题]HDOJ5515 Game of Flying Circus
嗯...这是一道水题... 鉴于还没人写这题的题解, 那我就来写一发. 题意:有个边长为300米的正方形 嗯 这样标号 有两个人A和S,开始的时候A.S都在1(左下角)那个位置. 两个人都要按照2. ...
- Java学习笔记(二)UML基础
用例图:代表系统的一个功能模块,仅仅是系统功能的描述.用例图包括:用例.角色.角色和用例之间的关系以及系统内用例之间的关系. 类图:表示系统中包含哪些实体,各实体之间如何关联. 类图除了表示实体内部结 ...
- 【Linux常识篇(1)】所谓的正向代理与反向代理
正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连 ...
- LR_问题_在导入wsdl时出现parsing error
问题描述:使用LR录制webservice协议的脚本,在导入wsdl时出现parsing error,详见图 问题解决:在导入wsdl时输入的地址错误,只指定了地址的虚拟目录名称,未指定方法名称,应该 ...