C# WinForm DataGridView显示SQL数据库的不同数据表时出现切换的问题

SQL里有两个数据表,表1,表2,初始化WinForm时显示表1,能正常工作
GetTables();
dataGridView.DataSource = DS.Tables["表1"];

通过按钮切换到表2时出错
DS.Clear();

GetTables();

dataGridView.DataSource = DS.Table["表2"]; //到该行报错

GetTable()
{
DA = new SqlDataAdapter("select * from 表1", CN);
DA.Fill(DS, "表1");
DA = new SqlDataAdapter("select * from 表2", CN);
DA.Fill(DS, "表2");
}

报错的提示:
未处理 System.ArgumentOutOfRangeException
Message=索引超出范围。必须为非负值并小于集合大小。
参数名: index
Source=mscorlib
ParamName=index
StackTrace:
。。。。。。。。。。。。。。。。。。。。。省略了一大堆

第1个回答  2013-05-13
DS.Clear(); 为啥要把dataset清了?
dataset里面可以存多张表的,不需要清,根据表名或索引找就可以了。
另外,你datagridview要设成自动生成列,在绑定数据之前需要清里一下之前绑的数据。
第2个回答  2013-05-13
把 ds释放一下应该是可以的 dispose
第3个回答  2013-05-20
把 DS.Clear(); 换成 DS.Rows.Clear() 看看行不

...DataGridView显示SQL数据库的不同数据表时出现切换的问题
dataset里面可以存多张表的,不需要清,根据表名或索引找就可以了。另外,你datagridview要设成自动生成列,在绑定数据之前需要清里一下之前绑的数据。

c# winform datagridview内容在不同窗体间传输的问题
可从数据源获取,也可从datagridview上获取.因为平时是通过DataTable或DataSet给datagridview绑定数据源。 return dt; } private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); Form1 f1 = new Form1(); f2.dt = f1.Getdata(); } ...

...mssql后,winform窗体中的datagridview 标题栏出现乱码,如下图:_百 ...
数据库数据显示正常,那就是程序绑定时数据加一个类型转换,UTF-8

winfrom C# datagridview表头设置的问题
你应该现自定义你的datagridview列的名称(点击datagridview右上方的三角,选择编辑列,进入编辑列的界面,如果还不懂就慢慢摸索一下吧。),然后你再将你定义的列跟你的ds.Table[0]的列绑定。当然还有一个不使用自定义列的方式就是在产生ds.Table[0]这个表时,将Table[0]的各个字段都转换成你要显...

C#的Winform程序,sql 分组统计,然后在dataGridView中显示
大致实现步骤:1写一个连接数据库的方法(如下)[最好定义是私有的全局变量]:public DataSet getCon() { SqlConnection sqlcon = new SqlConnection("server=.;database=你的数据库名;uid=sa;pwd=;");SqlDataAdapter sqlda = new SqlDataAdapter("select RecordId as ID号 ,C_Date as 时间,sum (...

C# winForm sql,根据选择条目在控件上显示对应信息。重新排序出现错误...
重新排序的时候,selectrows有可能是一项都没有选中,所以当然有可能是空的了,使用之前,你先判断一下 if(dataGridView1.SelectedRows.Count >0)或者你干脆用 currentrow来代替.SelectedRows[0],因为当前行是永远存在的。

C#怎样把SQL数据库查询出来的结果在dataGridView的指定行中显示
要用Js 来操作了. 你这样等於重新绑定一次. dataGridView 被编译解析后也就是一个html table,你可以看下如何给table添加一个新行. 该行每列的数据就用ajax 从后来获取.你可以参考下 insertRow(); insertCell();这两个方法.

C#怎样使 dataGridView1显示数据的时候,dataGridView1的列与数据库表...
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;...

...数据绑定到另一个窗体的datagridview上为啥不显示?
因为你绑定的是新实例化的一个f2,而不是你之前已经有的Form2,你可以用f2.show()看看,f2里的datagridview里肯定是显示的。如果你想让你的Form2显示,可以将bs传过去,在Form2的load里绑定。

...绑定sql数据库的多张表(用datagridview显示数据库连表查询语句的结果...
\/\/根据树节点或者下拉框的数据改变来动态生成Datagridview的列 public void SetControlData(DataGridView myGrid, string Str, string TableName, string WhereSql, string StateChange) { System.Data.DataTable table = new DataTable(); System.Data.DataColumn column = new DataColumn();Dat...

相似回答