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操作,直接贴代码,很简 ...
随机推荐
- Stateless Iterators
As the name implies, a stateless iterator is an iterator that does not keep any state by itself. The ...
- 日志logger
1.使用指定类初始化日志对象 在日志输出的时候,可以打印出日志信息所在类如:Logger logger = LoggerFactory.getLogger(com.Book.class); ...
- ARM CPU与Intel x86 CPU性能比较
Qualcomm ARM CPU与Intel x86 CPU性能比较 随着移动互联网时代的到来,Qualcomm(高通).Texas Instruments(德州仪器)等基于ARM架构的CPU受到越来 ...
- Could not connect to SMTP host: smtp.***.com, port: 465, response: -1
背景 在使用javamail进行邮件发送的时候,报错: Could not connect to SMTP host: smtp.***.com, port: 465, response: -1 原因 ...
- 223. Rectangle Area
题目: Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defin ...
- shell编程基础(3)条件判断语句
1,带参数的shellscript #this is program build 5.11 to test shell script ############ cxz ####### 5.11 ### ...
- UVa 1301 - Fishnet
求出所有交点枚举每个四边形找最大面积即可. #include <cstdio> #include <cmath> #include <algorithm> usin ...
- C#sqlbulkcopy的优化
最近在进行项目的优化.现在部分数据的拷贝时间过长.需要进行上线前的优化,尝试,批次的数量和拷贝次数的之间的合理数值关系. 最近项目中使用到了SqlBulkCopy实现批量复制,在这里,我把部分代码筛选 ...
- C# 写入XML文档三种方法详细介绍
三个类将同样的xml内容写入文档,介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作. 它们分别使用了XmlDocument类和XDocum ...
- 解决 “无法安装 Visual Studio 2010 Service Pack 1,因为此计算机的状态不支持”
http://blog.csdn.net/davidhsing/article/details/8762621 无法安装Microsoft visual studio 2010 service pac ...