So etwas wie dies tun würde, was Sie wollen, ich denke ...
List<sqlprop> sqlprop= read
.readrows("SELECT * FROM test")
.Tables[0]
.Rows
.Cast<DataRow>()
.Select(r => new sqlprop
{
data1 = r.GetString(0),
data2 = r.GetString(1)
})
.ToList();
Sie für DBNull.Value überprüfen sollten, und wahrscheinlich auch die Spaltennamen in der SQL-Abfrage etc, etc, aber Sie bekomme eine Vorstellung.
aktualisieren
Wenn Sie es benötigen generisch zu sein und die Spaltennamen in der Datenbank entspricht genau den Namen der Eigenschaft Sie so etwas tun könnte (nicht getestet, habe ich keinen Compiler hier, aber es sollte Ihnen die Idee):
List<sqlprop> sqlprop= read
.readrows("SELECT * FROM test")
.Tables[0]
.Rows
.Cast<DataRow>()
.Select(r => {
var ret = new sqlprop();
foreach (var p in ret.GetType().GetProperties())
{
object val = r[r.Table.Columns.IndexOf(p.Name)];
if (val != DBNull.Value)
{
p.SetValue(ret, val, null);
}
}
return ret;
})
.ToList();
HINWEIS: Dies ist ein bisschen flockig und nicht super effizient, aber trotzdem, da ist es!
Meinst du "wie' DataRow' in 'sqlprop' konvertieren?"? –
Es ist nicht klar, was Sie meinen, und Ihr Codebeispiel hat viele Probleme, die die Absicht der Probe verdecken. – David
Ja konvertiere den Datarow in sqlprop. – tdjfdjdj