我使用
DataRow[] r = ds.Tables[0].Select("name ='"+textBox1.Text+"' ");
取得了一个记录数组。我想把这个记录数组放入dataGridView中。
经测试,dataGridView不能直接绑定记录数组。虽然可以使用循环语句将记录数组
dt.Rows.Add(DataRow[i])
赋值给表对象。
但是我想这样对系统开销有些大。不知道大家有没有好的方法来解决这个问题?
或者如何来高效的实现查询功能?
DataRow[] r = ds.Tables[0].Select("name ='"+textBox1.Text+"' ");
取得了一个记录数组。我想把这个记录数组放入dataGridView中。
经测试,dataGridView不能直接绑定记录数组。虽然可以使用循环语句将记录数组
dt.Rows.Add(DataRow[i])
赋值给表对象。
但是我想这样对系统开销有些大。不知道大家有没有好的方法来解决这个问题?
或者如何来高效的实现查询功能?
解决方案 »
- 高分求教怎么把自己的电脑弄成网站服务器!!!!!!!!!
- 刚配置了VSS,服务器中的VS是2005,而我机子用的是VS2008,打开后提示转换版本,如果我再本机转换了,服务器的项目会不会也转换了呀?
- .Net如何连接Derby数据库?或者.Net如何使用JDBC
- C# 二次开发visio 添加右键菜单问题
- Datetime 格式数据如何转化到字节数组中byte[]
- 一个不知道难不难的问题,这样的函数如何定义?
- DataReader 不能读取出数据(急啊)
- 相信这里能解决这两个问题的人很少很少……
- 非静态的字段、方法或属性“System.Configuration.Install.Installer.Installers????
- 各位大哥:哪里有C#的电子图书下载?
- 如何给文件加图片
- winForm光标控制
DataTable dt = ds.Tables[0].DefaultView.ToTable();
dataGridView1.DataSource = dt;
传的是引用,占用资源不会很多。
DataSet ds = opconn();
DataView dv = new DataView(ds.Tables[0]);//创建数据视图
if (textBox1.Text != "")
{
dv.RowFilter = "name ='" + textBox1.Text + "'";//数据视图筛选数据
dataGridView1.AutoGenerateColumns = true;//网格控件是否自动创建
dataGridView1.DataSource = dv;//绑定网格控件的数据源,这里使用DataRow r记录数组作为数据源 }
else
{
dv.Sort = "ge desc";//数据视图排序,可有多个列,默认为升序,降序加desc
dataGridView1.AutoGenerateColumns = true;//网格控件是否自动创建
dataGridView1.DataSource = dv;//绑定网格控件的数据源,这里使用dataset作为数据源
}
就是返回一个数据集。
private DataSet opconn()
{
string strConn = "Initial Catalog=Northwind;Data Source=(local);User ID=sa;Password=kingat801";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand selcmd = new SqlCommand();
selcmd.Connection = conn;
selcmd.CommandText ="SELECT * FROM test"; SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = selcmd; DataSet ds = new DataSet();
da.Fill(ds, "king");
conn.Close();
return ds;
}
dataGridView1.DataSource=ds.Tables[0].DefaultView;哎,c#的设计实在让程序员太舒服了。
我是用DataView来接受数据,而lxcnn使用dataset。
不过lxcnn的方法也是正确的。
DataRow[] drArr = dt.Select("C1=’abc’");//查询问题来了,如果要把DataRow赋值给新的DataTable,怎么赋值呢?你可能会想到: DataTable dtNew = dt.Clone();
for (int i = 0; i < drArr.Length; i++)
{
dtNew.Rows.Add(drArr[i]);
}
但这样程序就会出错,说该DataRow是属于其他DataTable的,那要怎么做呢?很简单,这样就可以解决了: DataTable dtNew = dt.Clone();
for (int i = 0; i < drArr.Length; i++)
{
dtNew.ImportRow(drArr[i]); } 这样就完成了。