我正在创建一个Web表单,我有5个文本框。将放在此处的数据来自Stored Proc,它返回一个包含2列的表格,如下所示:
----------------
| ID | Amount |
|1 | 5 |
|2 | 9 |
|3 | 2 |
|4 | 1 |
|5 | 57 |
----------------
现在,我如何以有效的方式将特定值分配给相应的文本框,这取决于ID列,如下所示:
if ID="1" then txt_ID1.Text = "5";
...txt_ID2.Text = "9";
...txt_ID3.Text = "2";
...txt_ID4.Text = "1";
...txt_ID5.Text = "57";
答案 0 :(得分:1)
让dtResult
成为您使用存储过程填充的DataTable,因为DataTable遵循基于0
的索引并且它允许您根据索引获取行,您可以使用以下代码获取textBox的值。
if (dtResult.Rows.Count >= 4)
{
txt_ID1.Text = dtResult.Rows[0]["Amount"].ToString();
txt_ID2.Text = dtResult.Rows[1]["Amount"].ToString();
txt_ID3.Text = dtResult.Rows[2]["Amount"].ToString();
txt_ID4.Text = dtResult.Rows[3]["Amount"].ToString();
txt_ID5.Text = dtResult.Rows[4]["Amount"].ToString();
}
答案 1 :(得分:0)
您可以在服务器端代码中找到控件并将值分配给Text属性,我认为您的存储过程结果位于 module top;
reg signed [5:0] a;
initial begin
a = -4;
$display(a<4'b1101);
$display(a<4'sb1101);
end
endmodule
中,但是你可以按照自己的方式去做,所以推荐的代码是这样的:
dictionary
答案 2 :(得分:0)
这样做:
DataTable dataTable=new DataTable();
using (SqlConnection connection = new SqlConnection(*<YourConnectionString>*))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand("GetAmount", connection))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
{
dataAdapter.Fill(dataTable);
foreach (DataRow dr in dataTable.Rows)
{
var control=Controls.Cast<Control>().FirstOrDefault(x=>x.ID==string.Format("txt_ID{0}",dr["ID"])) as TextBox;
if (control != null)
control.Text = dr["Amount"].ToString();
}
}
}
}