从数据库获取数据到文本框?

时间:2015-02-15 20:19:11

标签: c#

我有这段代码,但它不起作用

try
            {
                con.Open();
                using (SqlCommand command = new SqlCommand("select nev, telefonszam, felhasznalonev, lakcim,email from Felhasznalo where felhasznalonev='"+cbUsername.Text+"' ", con))
                {
                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        string name = reader.GetString(0); 
                        string phone = reader.GetInt32(1).ToString();  
                        string username = reader.GetString(2);
                        string address = reader.GetString(3);
                        string email = reader.GetString(4);  

                        tbUsername.Text = username;
                        tbName.Text = name;
                        //tbPhoneNumber.Text = phoneNumber.ToString();
                        tbAddress.Text = address;
                        tbEmail.Text = email;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(""+ex);
            }
            finally
            {
                con.Close();
            }

错误是:指定演员无效。 怎么了? 我从这里得到了解决方案:https://www.youtube.com/watch?v=sKealDA-Wr8

1 个答案:

答案 0 :(得分:-2)

我建议您为要返回的所有字段执行此操作。

string phone = (string)reader["telefonszam"].ToString();

如果数据库结构发生更改或添加新列并更改索引/顺序怎么办?如果该列位置的数据类型要更改,那么使用GetString(4)会失败,这就是我建议您使用的原因实际的列名。