动态执行sql查询:鉴于图形方式不够灵活,这里使用动态代码重新做上次的内容。
界面上不再需要OleDbConnection和OleDbDataAdapter。只要有一个datagrid。
添加一个按钮。在按钮的点击事件中增加如下代码(myConnString 可以从上次的图形界面的OleDbConnection属性得到,删除部分无用的信息,保留数据源、用户、密码等主要信息):
string myConnString ="Jet OLEDB:Database Password=;Data Source=\"C:\\db1.mdb\";
Password=;Provider=\"Microsoft.Jet.OLEDB.4.0\";User ID=Admin";
string querySql ="select * from test where name <> 'aa'";
//新建一个OleDbConnection,一个OleDbDataAdapter
OleDbConnection myConnection = new OleDbConnection(myConnString);
OleDbDataAdapter adapter = new OleDbDataAdapter(querySql,myConnection);
adapter.SelectCommand = new OleDbCommand(querySql, myConnection);
DataSet ds = new DataSet();
this.DataGrid1.DataSource=ds;
adapter.Fill(ds);
this.DataGrid1.DataBind();
点击按钮之后,就可以看到按照你的Sql得到的检索结果
OleDbCommand 还支持在查询中使用动态参数。上面的例子经过修改如下:
string myConnString ="Jet OLEDB:Database Password=;Data Source=\"C:\\db1.mdb\";Password=;
Provider=\"Microsoft.Jet.OLEDB.4.0\";User ID=Admin";
string querySql ="select * from test where name = @name";
//新建一个OleDbConnection,一个OleDbDataAdapter
OleDbConnection myConnection = new OleDbConnection(myConnString);
OleDbDataAdapter adapter = new OleDbDataAdapter(querySql,myConnection);
OleDbCommand myCommand = new OleDbCommand(querySql, myConnection);
OleDbParameter myParm = new OleDbParameter("@name",OleDbType.VarChar,50);
myParm.Value="Liu";
myCommand.Parameters.Add(myParm );
adapter.SelectCommand =myCommand;
DataSet ds = new DataSet();
this.DataGrid1.DataSource=ds;
adapter.Fill(ds,"test");
this.DataGrid1.DataBind();
这样点击按钮之后就可以检索到名字是“Liu”的数据