sql Server2000中car表里的记录显示在dataGrid控件中?我想在“查询”按钮的单击事件中,查询出car表里的记录,并显示在dataGrid控件中(不使用dataSet的方法)。//sqlConnection1已经连接到数据库了
string sqlSelect="Select * from Car";
this.sqlSelectCommand1=new SqlCommand(sqlSelect,this.sqlConnection1);
this.sqlConnection1.Open();
this.sqlSelectCommand1.CommandText=sqlSelect;
SqlDataReader dr=this.sqlSelectCommand1.ExecuteReader();
while (dr.Read())
{
这里改怎样写呢?
}
string sqlSelect="Select * from Car";
this.sqlSelectCommand1=new SqlCommand(sqlSelect,this.sqlConnection1);
this.sqlConnection1.Open();
this.sqlSelectCommand1.CommandText=sqlSelect;
SqlDataReader dr=this.sqlSelectCommand1.ExecuteReader();
while (dr.Read())
{
这里改怎样写呢?
}
string sqlSelect="Select * from Car";
this.sqlSelectCommand1=new SqlCommand(sqlSelect,this.sqlConnection1);
this.sqlSelectCommand1.CommandText=sqlSelect;this.sqlConnection1.Open();DataTable dt = new DataTable();dt.Load(this.sqlSelectCommand1.ExecuteReader(CommandBehavior.CloseConnection));dataGridView1.DataSource = dt;
"可以通过dr.Read()循环来将数据读入ArrayList等对象中,然后再绑定到DataGrid中"----------------
按照您的方法,我如下的修改了程序:string sqlSelect="Select * from Car";
this.sqlSelectCommand1=new SqlCommand(sqlSelect,this.sqlConnection1);
this.sqlConnection1.Open();
this.sqlSelectCommand1.CommandText=sqlSelect;
SqlDataReader dr=this.sqlSelectCommand1.ExecuteReader();//创建ArrayList对象
System.Collections.ArrayList al = new System.Collections.ArrayList();
//用循环将数据读入到ArrayList对象中
while (dr.Read())
{
al.Add(dr["Int_CarId"].ToString());
al.Add(dr["Str_CarName"].ToString());
al.Add(dr["Str_CarUser"].ToString());
al.Add(dr["Date_BuyDate"].ToString());
}
//将数据绑定到DataGrid中
this.dataGrid1.SetDataBinding(al,"Car");但是运行时通不过。其中Int_CarId,Str_CarName,Str_CarUser,Date_BuyDate是car表的四个字段。请问:哪里出错了?
datagrid1.DataBind();
{
conn.ConnectionString = "server=namhyukp4;database=northwind;uid=sa;pwd="; SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from employees"; conn.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); ArrayList al = new ArrayList();
foreach(System.Data.Common.DbDataRecord record in dr)
{
al.Add(record);
}
dataGridView1.DataSource = al;
}=========================
{
al.Add(dr["Int_CarId"].ToString());
al.Add(dr["Str_CarName"].ToString());
al.Add(dr["Str_CarUser"].ToString());
al.Add(dr["Date_BuyDate"].ToString());
}上面这个程序段不附合逻辑。一般来讲,你最好在项目中增加一个类,简单些,比如是Class1吧。
class Class1
{
private int int_CarId;
public int Int_CarId //定义属性
{
get { return int_CarId; }
set { int_CarId = value; }
} private string str_CarName;
public string Str_CarName
{
get { return str_CarName; }
set { str_CarName = value; }
} //...余下你自己写}然后
while (dr.Read())
{
Class1 cls = new Class1();
cls.Int_CarId = int.Parse(dr["Int_CarId"].ToString());
cls.Str_CarName = dr["Str_CarName"].ToString();
//...余下自己写吧
al.Add(cls); //注意:是在列表里添加整个对象的引用,而不是一个行字段值。
}