【发布时间】:2014-06-16 21:59:18
【问题描述】:
我需要知道 DataGridView 中每一列的原始类型。
它与动态 SQL 选择绑定,例如 "SELECT * FROM artists;"
我想在网格上方添加数据的表单视图,并以编程方式创建标签和文本框,然后创建一些来保存字段。我将它们添加到 FlowLayoutPanel,但我想调整大小,尤其是多行属性和高度,以适应 200-500 个字符的长注释和描述字段。
我在查看文本列时发现的只是数据类型string。
我知道我可以通过查询 systables 来查找列,但最好能找到比这更接近一点的原始数据类型;我也在使用 MYSQL atm,并且不需要查询数据库的解决方案也有望独立于 DBMS。
编辑 1
我在 DGV 中装满了没有什么花哨的东西:
DBDA = new MySqlDataAdapter(sql, DBC);
MySqlCommandBuilder cb = new MySqlCommandBuilder(DBDA);
DBDS = new DataSet(ddlb_tables.Text);
DBDA.FillSchema(DBDS, SchemaType.Mapped); //<- This was the missing piece of code!!
DBDA.Fill(DBDS, ddlb_tables.Text);
dataGridView1.DataSource = DBDS;
dataGridView1.DataMember = ddlb_tables.Text;
编辑 2
在接受的答案 (DBDA.MissingSchemaAction) 的帮助下,我可以解决我的问题。这是第一个原始版本的结果函数:
public int getColumnSize(DataGridViewColumn dc)
{
try
{
DataGridView DGV = dc.DataGridView;
DataSet DS = (DataSet)DGV.DataSource;
DataTable DT = DS.Tables[0];
DataColumn DC = DT.Columns[dc.Name];
return DC.MaxLength;
} catch { }
return -1;
}
没有得到原始类型不是问题,只要我知道字段的长度即可。
【问题讨论】:
-
如何填写
DataGridView? -
@lomed 查看已编辑的问题!
标签: c# sql winforms datagridview sqldatatypes