oa.CmdString = "select username,userpass from usertable where id=" + uid;
dt = oa.SelectCommand().Tables[0];//返回一个DataTable
textBox2.Text = dt.Rows[0]["username"].ToString();//通过行能够正常显示查询出来的结果
textBox3.Text = dt.Columns["username"][0].ToString();//通过列就不行了,看样子不应该这样写,应该怎么写呢?
dt = oa.SelectCommand().Tables[0];//返回一个DataTable
textBox2.Text = dt.Rows[0]["username"].ToString();//通过行能够正常显示查询出来的结果
textBox3.Text = dt.Columns["username"][0].ToString();//通过列就不行了,看样子不应该这样写,应该怎么写呢?
没有这种写法
dt1.Columns[i].ToString()这个是获取第i列的列名,比如你上面写的username
这个不就可以了吗?只需改变[]内的参数就成了,比如你要"username"列的所有数据:
foreach(datarows row in dt.rows){
textBox.text=row["username"].tostring();
}
这样就会把username列内的所有内容在textbox中输出一编,当然.这里只能显示最后一个.
在表中,row才是代表数据的,也就是说数据永远存在于行中
column是代表数据结构的,告诉我们在一行中某个位置的数据类型是什么
DataTable.Columns["索引"].Name
列只有列名,它没有值的,如果要取值的话,是通过行和列就确定啦你要取值的单元格,定位到单元格你就可以.value属性获得你想要的值了,就是你楼主的第一个可以取到值的方式,Column只是一个数据结构,帮你查找单元格和定位单元格的
// 取货方法 取货渠道
SqlDataAdapter sda = new SqlDataAdapter(sqlstr, sqlHelper.sqlConnection);
//取货存储
DataSet ds = new DataSet();
sda.Fill(ds);
//货物展示
this.dataGridView1.AutoGenerateColumns = false;//展示时,不再添加新的列
//把货绑定到货架上
this.dataGridView1.DataSource = ds.Tables[0];
dataGridView1.ReadOnly = true;