使用数组通过循环为文本框提供文本

时间:2019-06-27 15:10:29

标签: c# asp.net

我创建了一个登录系统,人们可以在其中创建用户并修改其个人资料。他们可以在其中修改其个人资料的页面由多个文本框组成,其中可以加载其当前的个人资料数据或为该文本框分配默认值。现在,我通过对其中的文本进行硬编码来填充文本框。我想改为使用循环来减少代码行。

我试图将文本框本身放在一个数组中,并建立一个循环,其中每个arrayindex等于另一个数组的值。显然,这是行不通的,因为带有文本框的数组只会被带有值的另一个数组覆盖。在其他情况下,类似的东西对我也起作用。

这是硬编码的示例:

protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
            string UserID = Session["LoggedInUserID"].ToString();
            SqlConnection LoadProfileConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
            SqlCommand LoadProfileCmd = new SqlCommand();
            LoadProfileCmd.Connection = LoadProfileConnection;
            LoadProfileCmd.CommandType = CommandType.StoredProcedure;
            LoadProfileCmd.CommandText = "LoadProfileRediger";
            LoadProfileCmd.Parameters.AddWithValue("@Id", UserID);
            LoadProfileConnection.Open();
            SqlDataReader ReadProfileData = LoadProfileCmd.ExecuteReader();
            RedigerPassTxt.Text = ReadProfileData["Pass"].ToString();
            RedigerEmailTxt.Text = ReadProfileData["Email"].ToString();
            RedigerVirksomhedTxt.Text = ReadProfileData["Virksomhed"].ToString();
            RedigerFornavnTxt.Text = ReadProfileData["Fornavn"].ToString();
            RedigerEfternavnTxt.Text = ReadProfileData["Efternavn"].ToString();
            RedigerAdresseTxt.Text = ReadProfileData["Adresse"].ToString();
            RedigerTelefonTxt.Text = ReadProfileData["Telefon"].ToString();
            ReadProfileData.Close();
            LoadProfileConnection.Close();
            }
        }

这是失败的尝试。我尝试过它在外部没有的地方 功能。显然没有帮助:

        public void TextboxViewQuery(string con, string proc, string[] inputs, string[] vars, string paraSqlVar, string paraVar) 
        {
            SqlConnection LoadProfileConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[con].ConnectionString);
            SqlCommand LoadProfileCmd = new SqlCommand();
            LoadProfileCmd.Connection = LoadProfileConnection;
            LoadProfileCmd.CommandType = CommandType.StoredProcedure;
            LoadProfileCmd.CommandText = proc;
            LoadProfileCmd.Parameters.AddWithValue(paraSqlVar, paraVar);
            LoadProfileConnection.Open();
            SqlDataReader ReadProfileData = LoadProfileCmd.ExecuteReader();
            ReadProfileData.Read();
            for (int i = 0; i < vars.Length; i++)
            {
                inputs[i] = ReadProfileData[vars[i]].ToString();
            }
            ReadProfileData.Close();
            LoadProfileConnection.Close();
       }

预期结果是使文本动态进入文本框。虽然我确实知道为什么它现在不起作用。没有错误消息。

0 个答案:

没有答案