从列中检索单个数据

时间:2017-03-21 02:43:07

标签: c# sql

我正在创建一个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";

3 个答案:

答案 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();
                        }
                    }
                }
            }