単一の行を持つデータテーブルから値を抽出し、ASPラベルに割り当てる方法。
private void GetUser(string userId)
{
dbr.SelectString = "select name, gender, address, contactno from userInfo where id = = '" + userId + "' --"; // return single row
DataTable dt = dbr.GetTable();
//DataRow row = dt.Rows[0];
// how to retrieve the fields from the data table.
//lbl_name = name.ToString();
//lbl_gender = gender.ToString();
//lbl_contact = contactno.ToString();
}
foreach
ループの使用を考えましたが、データテーブルには単一行しか含まれていません。 NULLセルの場合に空の文字列を渡すにはどうすればよいですか。また、listを使用してデータテーブルから値を抽出できますか?
private void GetUser(string userId)
{
dbr.SelectString = "select name, gender, address, contactno from userInfo where id = = '" + userId + "' --"; // return single row
DataTable dt = dbr.GetTable();
if (dt.Rows.Count > 0)
{
DataRow row = dt.Rows[0];
lbl_name = row["name"].ToString();
lbl_gender = row["gender"].ToString();
lbl_contact = row["contactno"].ToString();
}
}
かなり遅いですが、あなたが探しているのは以下のコードだと思います。このDatatableはクエリの結果です。そのDTは、そのすべての行と列を文字列として解析されます。
DataTable dt = Execute_Query(Connection, query);
if (dt != null)
{
if (dt.Rows.Count > 0)
{
J = dt.Rows.Count;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
sb.Append(dt.Rows[i][j] + ",");
}
sb.Append("\n");
}
Logger.Info(sb.ToString());
}
}
すべての行のリストを取得するには、クラスが必要です
class Lbl()
{
public string Name {get; set;}
public string Gender {get; set;}
public string Contact {get; set;}
}
クラスに記入:
List<Lbl> list = new List<Lbl>();
foreach(DataRow row in dt.Rows)
{
Lbl lbl = new Lbl();
lbl.Name = row["name"].ToString();
lbl.Gender = row["gender"].ToString();
lbl.Contact = row["contactno"].ToString();
list.add(lbl);
}
単に1行で
dbr.SelectString = "select name, gender, address, contactno from userInfo where id = = '" + userId + "' --";
DataTable DataTable_Values= dbr.GetTable();
lbl_name = DataTable_Values.Rows[0].Field<string>("name");
lbl_gender = DataTable_Values.Rows[0].Field<int>("gender");
lbl_contact = DataTable_Values.Rows[0].Field<int>("contact")