读书人

Select话语的模糊查询

发布时间: 2011-12-18 22:54:38 作者: rapoo

Select语句的模糊查询。


/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new frmBookManage());
}

private void btnExit_Click(object sender, System.EventArgs e)
{
myCon.Close();//关闭连接
Application.Exit();//退出程序
}

private void frmBookManage_Load(object sender, System.EventArgs e)
{
//连接对象
myCon = new OleDbConnection();
myCon.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;"+"Data source ="+Application.StartupPath +@"\LibraryInfo.mdb";
myCon.Open();//打开数据库连接

OleDbCommand myCom = new OleDbCommand("select SortName from SortInfo",myCon);

myRd = myCom.ExecuteReader();
while(myRd.Read()==true)
{
cmbInfo.Items.Add(myRd["SortName"]);
}
myRd.Close();
}

private void btnView_Click(object sender, System.EventArgs e)
{
if(cmbInfo.Text=="" && txtBookName.Text=="" && txtAuthor.Text=="")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookId as 类别名称,BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo ",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="" && txtBookName.Text=="")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where BookAuthor='"+txtAuthor.Text+"' ",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="" && txtAuthor.Text=="")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where BookName='"+txtBookName.Text+"'",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where BookName='"+txtBookName.Text+"' and BookAuthor='"+txtAuthor.Text+"'",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="小说")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where SortId=1",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="计算机")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where SortId=2",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="求职")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where SortId=3",myCon);
DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}
else
if(cmbInfo.Text=="科学")
{
OleDbDataAdapter myAd = new OleDbDataAdapter("select BookName as 图书名称,BookAuthor as 作者,BookPublish as 出版社 from BookInfo where SortId=4",myCon);


DataSet myDs = new DataSet();
myAd.Fill(myDs,"BookInfo");
dataGrid1.DataSource=myDs.Tables[0];
}

}

我又来了。。上面的是我之前做的。关于一个图书馆的查询。(太菜太简单。别见笑。)
帮忙优化一下代码。还有个就是模糊查询的问题。比如我查询一个”西“字。就可以查询到关于西字的书本。
Select语句应该怎样写呢!???

[解决办法]
楼主,你应该根据用户的输入动态地拼接SQL语句,然后执行

[解决办法]
那么 你为么着:
需要查询多个条件时,你在界面里要求输入一个空格。
而后分空格读取,再并接sql
如: 西 书
string wherestr = "条件字段 like '西%’ + and 条件字段 like '书%' + .....";
如果再想细一点,再搞一个or的条件。
加入sql语句中。
看看其它人还有其它办法否!?


读书人网 >C#

热点推荐