SQL数据类型与asp.net中文本框中文本匹配的类型

fengxupeng 2009-04-11 10:08:28
搞了好久,没办法了,求各位高手相助!
用C#做的web网站,VS2005,Sql Server2005,数据库都已经连好了。
要实现在文本框中输入一个文本,然后点击按钮,读取数据库CerID字段(在数据库中该字段为Varchar类型)为该文本的所有记录,如果读取成功,就转到ShowAll.aspx页面,否则弹出对话框“未找到相关信息”。代码为:

…………
…………
SqlConnection MyConnection = DB.creatConnection();
MyConnection.Open();
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text+"'", MyConnection);

SqlDataReader dr = MyCommand.ExecuteReader();

if (dr.Read())
{//在数据库中找到了相应数据
Response.Redirect("ShowAll.aspx");
dr.Close();
MyConnection.Close();
}
else
{
Response.Write("<Script Language=JavaScript>alert('未找到相关信息!');</Script>");
}


在数据库CerID字段中有一个值为“222222”,但是在文本框中输入“222222”后,提示“未找到相关信息!”
但是把SqlCommand命令改为
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where StaID='222222'", MyConnection);时却能转到ShowAll.aspx页面。


怎么回事啊?哪的问题哦?

...全文
113 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianhuajishubu 2012-06-15
  • 打赏
  • 举报
回复
记住 调试灰常重要
XIAOYANJIANJIAN 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 phper2008 的回复:]
引用 11 楼 fengxupeng 的回复:
谢谢!我好像不太会调试,不过现在问题解决了。我的该网页中pageload事件里写的语句将文本框的内容设为空值了,我把那个语句去掉,问题就解决了。

但是不明白为什么,难道按钮的click事件会调用pageload吗?(我的按钮click事件只是查询数据库CerID字段是不是有文本框内容一样的数据,如果有就转到另一页面)

问题解决了,又出来一个问题……

任何服务器事件其实都刷新了页面,刷新…
[/Quote]
phper2008 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fengxupeng 的回复:]
谢谢!我好像不太会调试,不过现在问题解决了。我的该网页中pageload事件里写的语句将文本框的内容设为空值了,我把那个语句去掉,问题就解决了。

但是不明白为什么,难道按钮的click事件会调用pageload吗?(我的按钮click事件只是查询数据库CerID字段是不是有文本框内容一样的数据,如果有就转到另一页面)

问题解决了,又出来一个问题……
[/Quote]
任何服务器事件其实都刷新了页面,刷新时无条件执行page_load,如果你想不执行可以写在
if(!Page.IsPostBack)
{
//语句块
}
fengxupeng 2009-04-12
  • 打赏
  • 举报
回复
谢谢!我好像不太会调试,不过现在问题解决了。我的该网页中pageload事件里写的语句将文本框的内容设为空值了,我把那个语句去掉,问题就解决了。

但是不明白为什么,难道按钮的click事件会调用pageload吗?(我的按钮click事件只是查询数据库CerID字段是不是有文本框内容一样的数据,如果有就转到另一页面)

问题解决了,又出来一个问题……
XIAOYANJIANJIAN 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fengxupeng 的回复:]
引用 2 楼 phper2008 的回复:
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text.Trim()+"'", MyConnection);

这样解决不了呀!改成CerIDTxt.Text.ToString()也不行……
[/Quote]
调试一下,看CerIDTxt.Text返回的值,或且输出MyCommand.CommandText的值是不是select * from Cer_Table where CerID="22222"。然后在数据库那边运行一下,看一下效果。。调试很重要
XIAOYANJIANJIAN 2009-04-12
  • 打赏
  • 举报
回复
这样就不会了
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text.Trim()+"'", MyConnection);
agpsy 2009-04-12
  • 打赏
  • 举报
回复
原来是值空了啊。
wosizy 2009-04-12
  • 打赏
  • 举报
回复
改成trim()式一下
fengxupeng 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jiangshun 的回复:]
trim一下,然后转换成字符转类型,试试
[/Quote]
具体语句怎么写呀?
fengxupeng 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 phper2008 的回复:]
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text.Trim()+"'", MyConnection);
[/Quote]
这样解决不了呀!改成CerIDTxt.Text.ToString()也不行……
fengxupeng 2009-04-12
  • 打赏
  • 举报
回复
谢谢大家,我试一下
fengxupeng 2009-04-12
  • 打赏
  • 举报
回复
谢谢!有了分再来还账,呵呵!
mengxj85 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 phper2008 的回复:]
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text.Trim()+"'", MyConnection);
[/Quote]
Up
agpsy 2009-04-11
  • 打赏
  • 举报
回复
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text.ToString()+"'", MyConnection);
试试
phper2008 2009-04-11
  • 打赏
  • 举报
回复
SqlCommand MyCommand = new SqlCommand("select * from Cer_Table where CerID='"+CerIDTxt.Text.Trim()+"'", MyConnection);
jiangshun 2009-04-11
  • 打赏
  • 举报
回复
trim一下,然后转换成字符转类型,试试

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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