arraylist与datagridview数据绑定 看问题补充

arraylist与datagridview数据绑定 看问题补充,第1张

你这是……

ArrayList 是二维集合,这没错,它的每一项可以是Int string 任何值类型和引用类型,

datagridViewDataSource也接收的是二维集合类型

这个二维集合类型必须符合一定条件

1,必须是行列式数据,这个不必说

2,没一列必须有明显的列名称

符合这个条件的有 datatable dataset会默认取第一个(因为又多了一维),还有List<实体>、IList<实体>

arraylist只是个一维集合,可以这么说,他只有一行数据,而且没有明显的列说明。arraylist适合绑下拉菜单这种一维的,但是也需要枚举转换才能添加上。

所以说arraylist绑dataGridView 是没有什么意义的

你应该数据库读取出datatable 来绑,或者自定义datatable

/// <summary>

/// 初始化下拉列表框

/// </summary>

private void InitDGVComboBox(DataGridView dgv, ComboBox cbx)

{

m_CbxHelperBindWeldProcesses(cbx); //绑定数据源到ComboBox

dgvControlsAdd(cbx); //将ComboBox 添加到dgv

}

//激活某单元格

private void dgvDetail21_CellEnter(object sender, DataGridViewCellEventArgs e)

{

if (eColumnIndex == 2)

{

lastCbxRowIndex = eRowIndex;

lastCbxColIndex = eColumnIndex;

DisplayComboxOnCell(dgvDetail21, cbxWeldingProcess, eRowIndex, eColumnIndex);

}

}

//离开某单元格

private void dgvDetail21_CellLeave(object sender, DataGridViewCellEventArgs e)

{

UpdateComboBoxCellValue(dgvDetail21, cbxWeldingProcess, eRowIndex, eColumnIndex);

}

/// <summary>

/// 在制定的单元格显示下拉列表

/// </summary>

private void DisplayComboxOnCell(DataGridView dgv, ComboBox cbx, int rowIndex, int colIndex)

{

DataGridViewCell cell = dgvRows[rowIndex]Cells[colIndex];

Rectangle rect = dgvGetCellDisplayRectangle(cellColumnIndex, cellRowIndex, false);

cbxLocation = rectLocation;

cbxSize = rectSize;

//根据单元格值,设置ComboBox当前选定值

m_CbxHelperMatchComboBoxValue(cbx, cellValueToString());

cbxVisible = true;

}

/// <summary>

/// 更新下拉列表所在单元格值

/// </summary>

private void UpdateComboBoxCellValue(DataGridView dgv, ComboBox cbx, int rowIndex, int colIndex)

{

if (colIndex == 2)

{

DataGridViewCell cell = dgvRows[rowIndex]Cells[colIndex];

if (cellValue != null && cellValueToString() != cbxText)

{

cellValue = cbxText;

}

cbxVisible = false;

}

}

dataGridView

绑定数据源(表)字段属性为DataPropertyName

自定义列名称属性:HeaderText

动态生成列及属性设置:

thisdgvGoodsInfoDataSource

=

dt;

thisdgvGoodsInfoColumnsClear();

DataGridViewTextBoxColumn

dtInfo

=

new

DataGridViewTextBoxColumn();

dtInfoDataPropertyName

=

"sID";

dtInfoHeaderText

=

"编号";

thisdgvGoodsInfoColumnsAdd(dtInfo);

DataGridViewTextBoxColumn

dttruename

=

new

DataGridViewTextBoxColumn();

dttruenameDataPropertyName

=

"sName";

dttruenameHeaderText

=

"名称";

thisdgvGoodsInfoColumnsAdd(dttruename);

绑定数据库例子:

private

DataSet

GetDataset()

{

String

str="Data

Source=你的数据源,uid=你的数据库用户名,pwd=你的密码,database=你的数据库名字";

String

sql="select

from

表名";

SqlConnection

con

=

new

SqlConnection(str);

SqlCommand

cmd

=

new

SqlCommand(sql,con);

SqlDataAdapter

da

=

new

SqlDataAdapter(sql,con);

conOpen();

DataSet

ds

=

new

DataSet();

daFill(ds);

DataTable

dt;

dt=dsTables[0]Copy();

DataGridView1DataSource=dt;

}

请确定你究竟是不是在使用VBNET。看你的

代码

,是在使用VB。VB中不建议使用ADO的,而是使用ADONET,我给你

代码

,你自己可以考虑一下: SqlDataAdapter

adapter

=

new

SqlDataAdapter("select语句",new

SqlConnection("数据库字符连接"))DataTable

dt

=

new

DataTable()adapterFill(dt)DGV_GJCXDataSource

=

dt

这个很简单的!你在Form中加两个控件,一个DataGridView和一个bindingNavgint,在bindingNavgint中添加3个toolStripButton按钮Text属性改为更新,删除。第一就是DataGridView连接数据库!

现在名控件中加 using SystemDataOleDb;

代码在Form_Load中的代码是:OleDbConnection con=new OleDbConnection("Provider=MicrosoftJetOleDb40;DataSource=D://路径");

OleDbCommand cmd = new OleDbCommand("Select from 表名",con);

DataTable dt=new DataTable();

daSelectCommand = cmd;

daFill(dt);

conClose();

dgvDataSource = dt;

BindingSource bind = new BindingSource();

bindDataSource = dgvDataSource;

bindingNavigator1BindingSource = bind;

if (dtRowsCount > 0)

tsBtnDeleteVisible = true;

else

tsBtnDeleteVisible = false;

更新代码:

try

{

OleDbCommandBuilder cb = new OleDbCommandBuilder(da);

daUpdate(dt);

}

catch (Exception ex)

{

MessageBoxShow(exToString());

return;

}

MessageBoxShow("更新成功!");

删除代码:

dgvRowsRemoveAt(dgvCurrentRowIndex);

每次添加,修改,删除完了之后都点一下更新按钮就自定保存到数据库了 下次调用就会显示在DataGridView中了 dgv就是DataGridView。我说的够详细了。

以上就是关于arraylist与datagridview数据绑定 看问题补充全部的内容,包括:arraylist与datagridview数据绑定 看问题补充、怎么把数据绑定到DataGridView中的ComboBox上并显示出来、C#中关于dataGridView的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9274497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存