请问C#中条件查询时where中的一个值由textbox的text值来决定,重点请问select语句怎么写?部分代码如下:

顺便帮我看下这段代码(部分)有没不合理的地方://核对用户名、密码、身份SqlCommandcmd=conn.CreateCommand();cmd.CommandTex... 顺便帮我看下这段代码(部分)有没不合理的地方:

//核对用户名、密码、身份

SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT UserName, Password, Status FROM Users WHERE UserName = '+this.UserName .Text +' ";
reader = cmd.ExecuteReader();
string username = "";
string password = "";
string status= "";
while (reader.Read())
{
username = reader.GetValue(0).ToString();
password = reader.GetValue(1).ToString();
status =reader .GetValue (2).ToString ();
}

if (this.UserName .Text ==username &&this.PassWord .Text ==password &&this.Status .Text ==status )
{
Manager manager = new Manager(this.UserName);
try
{
manager.ShowDialog(this);
}
finally
{
manager.Dispose();
}
Close();
}
else
{
MessageBox.Show("用户名不存在或密码错误!","提示");
}
展开
 我来答
bg1avb
2010-08-25 · TA获得超过164个赞
知道小有建树答主
回答量:239
采纳率:66%
帮助的人:89.2万
展开全部
cmd.CommandText = "SELECT UserName, Password, Status FROM Users WHERE UserName = '+this.UserName .Text +' ";

改成

string strSql = "SELECT UserName, Password, Status FROM Users WHERE UserName = '"+this.UserName .Text +"' ";
cmd.CommandText = strSql;
百度网友61cc6c5
2010-08-25 · TA获得超过101个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:137万
展开全部
Select 语句加一个TOP 1吧,符合要求的记录应该只有一条。
只有一条语句怎么还使用While来读取?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CloudPRose
2010-08-25 · TA获得超过5175个赞
知道大有可为答主
回答量:3175
采纳率:66%
帮助的人:884万
展开全部
你不是已经写好了吗?虽然这样直接拼接是有SQL注入的安全问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rkc009
2010-08-25 · TA获得超过1499个赞
知道大有可为答主
回答量:2098
采纳率:60%
帮助的人:1698万
展开全部
不知道你的com 对象的连接在哪儿?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式