高手帮忙进来看看!

cwb210 2008-11-27 03:42:26
OleDbConnection old = new OleDbConnection(shujuku);
old.Open();
if (tBID.Text != "")
{
sSQL = "select * from shcershuju where (ID = '"+ id
// +"')and(姓名 ='"+ xingming
// +"')and(出生年月 ='"+ chusheng
// +"')and(电话 ='"+ dianhua
// +"')and(所在分店 ='"+ suozai
+"')";
}
else if (tBxm.Text != "")
{
sSQL = "select * from shcershuju where 姓名 ='"+ xingming +"'";
}
else if (tBxm.Text != "")
{
sSQL = "select * from shcershuju where 出生年月 ='"+ chusheng +"'";
}//这查询的时候会出错,我想问下是不是因为我数据库里的数据有-的原因阿?还有格式也不时全一样的有1999-9-12的也有1999-09-12
else if (tBxm.Text != "")
{
sSQL = "select * from shcershuju where 电话 ='"+ dianhua +"'";
}//这也是这情况,大部分是手机但也有座机的,所以有0202-22222222或就22222222的
else if (tBxm.Text != "")
{
sSQL = "select * from shcershuju where 所在分店 ='"+ suozai +"'";
}
OleDbCommand olc = new OleDbCommand(sSQL,old);
OleDbDataReader r = olc.ExecuteReader();
while ( r.Read() )
{
ListViewItem liv = new ListViewItem( new string []{r["ID"].ToString(),
r["顾客编号"].ToString(),
r["姓名"].ToString(),
r["性别"].ToString(),
r["出生年月"].ToString(),
r["尺寸"].ToString(),
r["腰封尺寸"].ToString(),
r["束裤尺寸"].ToString(),
r["爱好"].ToString(),
r["电话"].ToString(),
r["积花"].ToString(),
r["职业"].ToString(),
r["喜欢的颜色"].ToString(),
r["购买原因"].ToString(),
r["备注"].ToString(),
r["建档日期"].ToString(),
r["所在分店"].ToString()});
lvView.Items.Add(liv);
}
r.Close();
old.Close();

请大大们看看,好学习下
...全文
155 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
WizCas 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 cwb210 的回复:]
引用 16 楼 flyjimi 的回复:
你所有的else if (tBxm.Text != "") 都是判断的同样的条件,不知道你的程序是不是真这样写的

恩 是的,我想不出该怎么去解决,所以来了个大一统呵呵


我刚发现我导进去的年月日后面怎么还有00:00:00?不知道怎么解决呢?xls表是好的,可导入进去就多了时间了
[/Quote]

读取出来的DateTime对象调用ToLongDateString()方法
wfp5525 2008-11-27
  • 打赏
  • 举报
回复
新手学习了
BernardSun 2008-11-27
  • 打赏
  • 举报
回复
where 1=1 没什么意思,就是方便拼查询条件
cwb210 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 gentle_wolf 的回复:]
太弱了,这种代码也能写出来?如果你刚学.net,我也可以原谅一下。楼主要要努力学习啊!
呵呵, 顺便提示一下,你的OleDb是什么类型的数据库?不同的数据库支持的sql的方式不一样。
[/Quote]

呵呵 的却是刚学的,刚接触数据库不久
是mdb的数据库
cwb210 2008-11-27
  • 打赏
  • 举报
回复
sSQL = "select * from shcershuju where 1==1 ";

问下 这句是什么意思啊? 看不大懂
BernardSun 2008-11-27
  • 打赏
  • 举报
回复
1==1 多了个等号,可能还有其他地方要根据你实际情况改一下
月影 2008-11-27
  • 打赏
  • 举报
回复
太弱了,这种代码也能写出来?如果你刚学.net,我也可以原谅一下。楼主要要努力学习啊!
呵呵, 顺便提示一下,你的OleDb是什么类型的数据库?不同的数据库支持的sql的方式不一样。
BernardSun 2008-11-27
  • 打赏
  • 举报
回复

sSQL = "select * from shcershuju where 1==1 ";

if(id!="")
{
sSQL=sSQL+" and ID = '"+ id+"'";
}
if(xingming!="")
{
sSQL=sSQL+" and 姓名 ='"+ xingming+"'";
}
if(chusheng!="")
{
sSQL=sSQL+" and 出生年月='"+ chusheng +"'";
}
if(dianhua!="")
{
sSQL=sSQL+" and 电话 ='"+ dianhua +"'";
}
if (suozai != "")
{
sSQL = sSQL + "and 所在分店 ='" + suozai + "'";
}

这种模式的,给你参考
cwb210 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 flyjimi 的回复:]
你所有的else if (tBxm.Text != "") 都是判断的同样的条件,不知道你的程序是不是真这样写的
[/Quote]
恩 是的,我想不出该怎么去解决,所以来了个大一统呵呵




我刚发现我导进去的年月日后面怎么还有00:00:00?不知道怎么解决呢?xls表是好的,可导入进去就多了时间了
flyjimi 2008-11-27
  • 打赏
  • 举报
回复
你所有的else if (tBxm.Text != "") 都是判断的同样的条件,不知道你的程序是不是真这样写的
cwb210 2008-11-27
  • 打赏
  • 举报
回复
恩 学习了 以后注意
flyjimi 2008-11-27
  • 打赏
  • 举报
回复
既然有些查询条件不是精确定位到唯一的记录,建议电话号的查询用模糊匹配。如果一定要精确查询,就需要在拼查询条件之前,对用户输入的电话号进行处理。转换成数据库中存储的格式。
对于出生日期,如果数据库中是按日期类型存储的,那么select * from A where birth = '1999-09-14' 和 select * from A where birth = '1999-9-14' 都可以查出。
如果出生日期直接按字符串存储到数据库的,那也是一样需要转换格式。
cwb210 2008-11-27
  • 打赏
  • 举报
回复
BernardSun 朋友
说说我该怎么改下选择? 现在都没头绪了,想不出好点的了
cwb210 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 BernardSun 的回复:]
不管你输什么,他查的都是姓名
[/Quote]
朋友 谢谢你了,真的 刚没注意,现在看下真就查id 和姓名的,下面的都是出错的,呵呵
BernardSun 2008-11-27
  • 打赏
  • 举报
回复
不管你输什么,他查的都是姓名
cwb210 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 WizCas 的回复:]
引用 7 楼 cwb210 的回复:
引用 4 楼 BernardSun 的回复:
要是这样的话不管tBxm.Text为不为空,你红字的那些都执行不了的吧

不会的 只要后面的比方姓名输入了,也能查询的


我也觉得逻辑好像有问题啊
[/Quote]
呵呵 谢谢,听你一说我也觉得了,新手新手 呵呵想不出好的了 嘿嘿
cwb210 2008-11-27
  • 打赏
  • 举报
回复
不过只要前面的输入了,后面的就不执行了。。
WizCas 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cwb210 的回复:]
引用 4 楼 BernardSun 的回复:
要是这样的话不管tBxm.Text为不为空,你红字的那些都执行不了的吧

不会的 只要后面的比方姓名输入了,也能查询的
[/Quote]

我也觉得逻辑好像有问题啊
cwb210 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 BernardSun 的回复:]
要是这样的话不管tBxm.Text为不为空,你红字的那些都执行不了的吧
[/Quote]
不会的 只要后面的比方姓名输入了,也能查询的
feiyun0112 2008-11-27
  • 打赏
  • 举报
回复
连接字符串用

string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";data source=test.xls" ;

强制数据用字符串


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
加载更多回复(5)

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧