C#如何对内存表进行查询
publicdatatablebiao;publicvoidasd(){System.Data.OleDb.OleDbConnectionobjConn=newSyste...
public datatable biao;
public void asd()
{
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\excell.xls;Extended Properties=Excel 8.0;");
DataSet ds = new DataSet();
string TJ = "SELECT * FROM [myRange1$]";
OleDbDataAdapter da = new OleDbDataAdapter(TJ, objConn);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
objConn.Close();
return;
}
biao = ds.Tables[0];
objConn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
asd();
//dataGridView1.DataSource = biao;
DataSet ds = new DataSet();
string TJ = "SELECT * FROM biao where 姓名 = 张三";
OleDbDataAdapter da = new OleDbDataAdapter(TJ,);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
dataGridView1.DataSource = ds.Tables[0];
}
这个,asd函数是读取excel中的数据,并放入表biao中。
想实现,单击Button1时,对表biao进行查询,查询SQL为SELECT * FROM biao where 姓名 = 张三。
其中asd函数中的myrang1为excel中的工作表名。
可是button1_Click事件下,怎么连接表biao怎么写啊?
求解。
或者说白了,button1_Click事件怎么写? 展开
public void asd()
{
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\excell.xls;Extended Properties=Excel 8.0;");
DataSet ds = new DataSet();
string TJ = "SELECT * FROM [myRange1$]";
OleDbDataAdapter da = new OleDbDataAdapter(TJ, objConn);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
objConn.Close();
return;
}
biao = ds.Tables[0];
objConn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
asd();
//dataGridView1.DataSource = biao;
DataSet ds = new DataSet();
string TJ = "SELECT * FROM biao where 姓名 = 张三";
OleDbDataAdapter da = new OleDbDataAdapter(TJ,);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
dataGridView1.DataSource = ds.Tables[0];
}
这个,asd函数是读取excel中的数据,并放入表biao中。
想实现,单击Button1时,对表biao进行查询,查询SQL为SELECT * FROM biao where 姓名 = 张三。
其中asd函数中的myrang1为excel中的工作表名。
可是button1_Click事件下,怎么连接表biao怎么写啊?
求解。
或者说白了,button1_Click事件怎么写? 展开
6个回答
推荐于2017-09-19 · 知道合伙人数码行家
关注
展开全部
1.DataTable empTable = new DataTable();
注释:定义了一个内存中的表empTable。
2.empTable.Columns.Add("ID", Type.GetType("System.String"));
注释:函数原型:public DataColumn Add(string columnName, Type type);
添加一个列名为“ID”,其对应的类型为“System.String”的列。这属于设计表的范畴。
3.empTable.Rows.Add(dataRow);
注释:向表empTable添加一行,其中dataRow的数据类型为DataRow。
4.SqlDataAdapter da = new SqlDataAdapter(sql, connection);
或者SqlDataAdapter da = new SqlDataAdapter(SqlCommand cmd);用这种类型也能得到da。
DataTable dt = new DataTable();
da.Fill(dt);
注释:new SqlDataAdapter的参数:sql为一个查询数据库的语句,connection是SqlConnection类型。
da.Fill(dt); 表示用从数据库中查找得到的表填充内存中的一张表
注释:定义了一个内存中的表empTable。
2.empTable.Columns.Add("ID", Type.GetType("System.String"));
注释:函数原型:public DataColumn Add(string columnName, Type type);
添加一个列名为“ID”,其对应的类型为“System.String”的列。这属于设计表的范畴。
3.empTable.Rows.Add(dataRow);
注释:向表empTable添加一行,其中dataRow的数据类型为DataRow。
4.SqlDataAdapter da = new SqlDataAdapter(sql, connection);
或者SqlDataAdapter da = new SqlDataAdapter(SqlCommand cmd);用这种类型也能得到da。
DataTable dt = new DataTable();
da.Fill(dt);
注释:new SqlDataAdapter的参数:sql为一个查询数据库的语句,connection是SqlConnection类型。
da.Fill(dt); 表示用从数据库中查找得到的表填充内存中的一张表
展开全部
遍历吧,我也不清楚有什么比遍历更好的办法,楼主你的问题我也遇到过,当时我就是遍历的数据做了个for循环,在循环里查询不符合要求的,只要有不符合要求的,就执行datatable.rows[0].delete();然后最后剩下的结果集就是符合要求的啊,取出来就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是3.5的框架,推荐使用LINQ,支持各种复杂查询以及排序、统计等等,写法很简单,随便找点技术文档速成下就OK。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
biao.Select("姓名='张三'");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dataset有方法select提供条件查询。如下:
biao.Tables[0].Select("姓名 = 张三");
biao.Tables[0].Select("姓名 = 张三");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询