Avatar billede Lasse Novice
16. april 2007 - 18:17 Der er 1 løsning

ADO.NET, DataColumn, DefaultValue, Expression og DataGridView

Jeg har en DataTable med nogle kolonner i. Hver kolonne har en DefaultValue og nogle kolonner har en expression sat. Jeg viser nu DataTable i et DataGridView vha et DataView. Brugeren har rettighed til at addere i DataGridView'et.

Jeg ville nu formode at DefaultValue ville fremkomme i nye rows, men nej. Ydermere fungere expression ikke, HVORFOR? Her er min kode:

DataTable dt = new DataTable();

dt.Columns.Add(CreateColumn("d", typeof(string), null, ""));
dt.Columns.Add(CreateColumn("a", typeof(string), null, "0"));
dt.Columns.Add(CreateColumn("b", typeof(string), null, "0"));
dt.Columns.Add(CreateColumn("c", typeof(string), "CONVERT(CONVERT(a, 'System.Decimal') * CONVERT(b, 'System.Decimal'), 'System.String')", "0"));

DataView dw = new DataView(dt);

this.dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.Columns.Add(CreateDGColumn(new EPBC.Windows.Controls.DataGridViewTextBoxColumn2(), "d", 0));
this.dataGridView1.Columns.Add(CreateDGColumn(new EPBC.Windows.Controls.DataGridViewTextBoxColumn2(), "a", 1));
this.dataGridView1.Columns.Add(CreateDGColumn(new EPBC.Windows.Controls.DataGridViewTextBoxColumn2(), "b", 2));
this.dataGridView1.Columns.Add(CreateDGColumn(new EPBC.Windows.Controls.DataGridViewTextBoxColumn2(), "c", 3));

this.dataGridView1.DataSource = dw;

private DataGridViewColumn CreateDGColumn(DataGridViewColumn column, string headerText, int index)
{
    column.DisplayIndex = index;
    column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    column.HeaderText = headerText;

    return column;
}

private DataColumn CreateColumn(string name, Type dataType, string expression, object defaultValue)
{
    DataColumn dc = new DataColumn(name);
    dc.DataType = dataType;
    dc.Expression = expression;
    dc.DefaultValue = defaultValue;
    return dc;
}
Avatar billede Lasse Novice
16. april 2007 - 18:37 #1
Saet DataPropertyName...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester