C# winform DataGridView控件DataSource 绑定一个表后修改cell值的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform DataGridView控件DataSource 绑定一个表后修改cell值的问题相关的知识,希望对你有一定的参考价值。

我从数据库中取一个表放到DataTable中,使用DataSource进行绑定后,
某一列是int类型的 我怎么修改这个类型呢?我想赋值string类型的值 总报"agsdgs"不是有效的Int32值
DataGridView.Rows[0].Cells[0].value="agsdgs";
这个value的类型是objectint
我数据库表中有一列性别是int类型 存放数值 1 0 也就是男或女

从数据库将这个表读出来 放入DataTable中

使用DataSource=DataTable这个表

这列的类型是 DataGridViewTextBoxColumn

绑定完后 我修改这列的 DataGridView.Rows[i].Cells[0].Value = "男";

这样会报错 “男”不是有效的int32值

我将DataGridView.Rows[i].Cells[0].DataType = typeof(string);后 也是不行的

我查看DataGridView.Rows[i].Cells[0].Value的类型是 objectint类型

我怎么能将string类型赋值给这个 DataGridViewTextBoxCell呢???

参考技术A 与你数据库中表中的列的类型一样,不符合的话就不能更改

string str = DataGridView.Rows[i].Cells[0].Value;//定义str用来接收你在性别列所填写的值
//然后用switch语句进行判断
switch(str)

case "男": //如果是男,就用1代替男加进去
case "女"://如果是女,就用0代替女加进去
default:break;
参考技术B 这样看行不行
首先你定义一个Datatable,这个Table的列你自己定义 是数字类型的就用数字类型,是字符串的用字符串,是日期的用日期类型,DataType不用我教吧?然后再把你查出来的数据绑给这个DataTable,最后把DataTable赋给DataGridView。这样就不会报类型错误了。
参考技术C 你到数据库里把列的数据类型改成string型,这样不管你往数据库里更新字符还是数字都ok了。
抱歉怎么在C#里改我还不会。
参考技术D 你前面不是用1.0来代替男女吗?那 DataGridView.Rows[i].Cells[0].Value = "男";不就应该是 DataGridView.Rows[i].Cells[0].Value = 1应该就可以了吧?

winform中的DataGridView如何实现分页(C#)

能跟讲讲实现思路吗 不要代码

常用分页一般有两种
一是在数据库写存储过程,或利用sql语句,每次只取出N条数据。
二是将数据一次性全取出来,然后利用程序来进行分页。
第一种在数据量比较大的时候性能好点。
希望你能明白。
参考技术A 这个要添加 DataGridView 控件的功能
写一个“用户控件”,继承DataGridView
public partial class UserControl1 : DataGridView
然后再添加一些翻页的方法
参考技术B 应该在后台就实现分页。DataGridView显示分页数据就可以了。 参考技术C http://www.cnblogs.com/sayu115/archive/2007/10/12/922115.html 参考技术D 你可以再视图下面放按钮,上一页下一页这些,然后放lable用于显示当前页和总页数也方便以后获取当前页数
方法一:查询出所有数据,获取你数据源的总行数,然后用你的总行数除以一行显示的数量, 得出的就是你的总页数
第一次进入当前页肯定是1在绑定数据数据时根据当前页和行数从你的数据源中取值,然后将取出的数据绑定你的DataGridView
在点击下一页或者上一页这些时++或--你的当前页,当然最后一页和第一页的时要进行判断的,否则就要出错了
方法二:写一个存储过程,传入当前页和每页行数,sql和oracle等数据库都有标识列,以此作为条件,只取出一部分数据绑定到DataGridView中,每一次点击按钮时,调用该存储过程获取数据,优势是在大数据量时查询效率比第一种方法效率高,并且在数据结构发生改变时方便维护,可以只修改存储过程

以上是关于C# winform DataGridView控件DataSource 绑定一个表后修改cell值的问题的主要内容,如果未能解决你的问题,请参考以下文章

c# winform datagridview怎么能达到如图的效果

C# winform DataGridView控件DataSource 绑定一个表后修改cell值的问题

C# winform datagridview如何计算统计

C# winform中dataGridView控件如何插入、删除、更新记录,操作完成后怎样写回数并保存据库,怎么写代码?

C# Winform DataGridView在列中使用DateTimePicker控件

C#,winform程序中datagridview控件怎么使用多层表头?请教一下,谢谢!