제 질문은 다른 질문과 다를 수 있습니다.DataRow에서 열 값을 가져옵니다.
그러나 DataRow에서 행의 값을 가져 오는 방법이 있습니까? 지금은 schemaInfos 얻을 수있는 다음 foreach 문이 들어 :
foreach (DataRow row in schemaTable.Rows
{
if (row.Field<String>("ColumnName") != "id")
{
TextBox textBox = new TextBox();
MaterialDesignThemes.Wpf.HintAssist.SetHint(textBox, UppercaseFirst(row.Field<String>("ColumnName")));
textBox.Name = row.Field<String>("ColumnName");
textBox.Tag = row.Field<Boolean>("AllowDBNull");
textBox.Text = // Here I want to put the value like row.Field<String>("ColumnValue")
StackPanel.Children.Add(textBox);
}
}
내 질문입니다 나도이 foreach 문을 통해 열의 값을 얻을 수 있습니까? 정상을 위해 나는 값을 얻기 위해, 다음을 수행해야합니다
while(reader.Read())
{
textBox.Text = reader[i].ToString();
}
을하지만 내가 너무 내 된 DataRow foreach 문에서이 작업을 수행 할 수 있다고 생각합니다. 어쩌면 다른 DataColumn 속성 값이 예를 들어 row.Field<String>("ColumnValue")
또는 smth 같은 것을 얻을 수 있습니다.
나는 또한 첫 번째 열의 값만 제공하고 다른 열의 값은 제공하지 않습니다.
using(MySqlCommand cmd = new MySqlCommand())
{
cmd.Connection = connection;
cmd.CommandText = sql;
dataReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);
schemaTable = dataReader.GetSchemaTable();
int i = 1;
while(dataReader.Read())
{
foreach(DataRow field in schemaTable.Rows)
{
if(field.Field<String>("ColumnName") != "id")
{
TextBox textBox = new TextBox();
textBox.Name = field.Field<String>("ColumnName");
textBox.Tag = field.Field<Boolean>("AllowDBNull");
textBox.Text = dataReader[i].ToString();
StackPanel.Children.Add(textBox);
i++;
}
}
}
먼저 내가 사용하는 내 foreach 루프를 복사 :
int i = 1;
foreach (DataRow field in schemaTable.Rows)
{
if (field.Field<String>("ColumnName") != "id")
{
TextBox textBox = new TextBox();
MaterialDesignThemes.Wpf.HintAssist.SetHint(textBox, UppercaseFirst(field.Field<String>("ColumnName")));
textBox.Name = field.Field<String>("ColumnName");
textBox.Tag = field.Field<Boolean>("AllowDBNull");
if (dataReader.Read())
{
textBox.Text = dataReader[i].ToString();
}
i++;
StackPanel.Children.Add(textBox);
}
}
_ "(ColumnValue") "예를 들어이을 row.Field": 원하는 없습니다. 질문을 닫을 수 있습니까? –
질문이 명확하지 않습니다. 데이터베이스의 테이블에 대한 메타 정보 만 포함하는 스키마 테이블이있는 것 같습니다. 값을 원하면 유효한 SQL을 사용하여 값을 읽은 다음 DataAdapter를 통해 DataTable을 채 웁니다. –
것은 ("ColumnValue")가 없다는 것입니다. 그래요, columnName과 AllowDBNull을 얻기 위해 schemaInfo를 읽었습니다. ColumnName은 ColumnName의 Label이있는 TextBox입니다. 이제 Column의 값을 TextBox.Text 속성에 저장하려고합니다. 그것이 내가 할 수없는 이유입니다. (reader.Read()) 내 질문을 편집했습니다. – Luranis