开发者

how to fill textbox from dataset?

i run this and i want to fill textbox txtFname with data - but it dont do nothing

 using (Conn = new SqlConnection(Conect))
                {
                    Conn.Open();

                    SQL = "SELECT * FROM MEN where id = '" + txtBAR.Text.Trim() + "'";
                    dsView = new DataSet();
                    adp = new SqlDataAdapter(SQL, Conn);
                    adp.Fill(dsView, "MEN");
                    adp.Dispose();
                    txtFname.Text = dsView.Tables[0].Rows[3][0].ToString();
                    txtFname.Data开发者_如何学运维Bind();
                    Conn.Close();
                }

how to do it ?

thank's in advance


using (Conn = new SqlConnection(Conect)) {
    try {
        // Attempt to open data connection
        Conn.Open();

        // Compose SQL query
        string SQL = string.Format("SELECT * FROM MEN WHERE id = '{0}'", txtBAR.Text.Trim());
        using(SqlCommand command = new SqlCommand(SQL,Conn)) {
            // Execute query and retrieve buffered results, then close connection when reader
            // is closed
            using(SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection)) {
                // Assign txtFname value to search value and clear value if no results returned
                txtFname.Text = reader.Read() ? reader[0].ToString() : string.Empty;
                reader.Close();
            }
        }
    }
    finally {
        // Regardless of whether a SQL error occurred, ensure that the data connection closes
        if (Conn.State != ConnectionState.Closed) {
            Conn.Close();
        }
    }
}

However, I would advise that you

  1. update your SQL query to return the actual column names instead of *
  2. replace reader[0].ToString() with reader["FirstName"].ToString()


using (Conn = new SqlConnection(Conect))
{
Conn.Open();    
SQL = "SELECT * FROM MEN where id = '" + txtBAR.Text.Trim() + "'";
SqlCommand command= new SqlCommand(SQL,Conn);
SqlDataReader reader = command.ExecuteReader()
reader.Read();
//Call Read to move to next record returned by SQL
//OR call --While(reader.Read())
txtFname.Text = reader[0].ToString();
reader.Close();
Conn.Close();
}

Edit: I just noticed 'dataSet' not database, anyway you are reading third row, is your query returns more than one row?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜