[已解决问题] 做登录窗口
提问时间: 2008-05-10 09:10
悬赏分:20 浏览:109 次

我用vs2005 和SQL2005开发一个系统,做登录窗口时出现了一个错误

 private void btnOk_Click(object sender, EventArgs e)
        {
            string username = cboUsername.Text;
            string password = txtpassword.Text;
            DsloginTableAdapters.QueriesTableAdapter q = new JXCGLXXXT.DsloginTableAdapters.QueriesTableAdapter();
            if ((username,password) != 0)
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                MessageBox.Show("password wrong");
            }
        }

红色部分有问题!请问应该怎么写啊!我是新手,谢谢啊!第一次尝试着开发系统.


提问者:junli2201 - 初学一级

问题补充:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /debug+ /debug:full /optimize- /out:obj\Debug\JXCGLXXXT.exe /resource:obj\Debug\JXCGLXXXT.frmBjd.resources /resource:obj\Debug\JXCGLXXXT.frmLogin.resources /resource:obj\Debug\JXCGLXXXT.frmMain.resources /resource:obj\Debug\JXCGLXXXT.frmQgd.resources /resource:obj\Debug\JXCGLXXXT.frmSplash.resources /resource:obj\Debug\JXCGLXXXT.Properties.Resources.resources /target:winexe Dslogin.Designer.cs DsQgd.Designer.cs frmBfd.Designer.cs frmBjd.cs frmBjd.Designer.cs frmLogin.cs frmLogin.Designer.cs frmMain.cs frmMain.Designer.cs frmQgd.cs frmSplash.cs frmSplash.Designer.cs Program.cs Properties\AssemblyInfo.cs Properties\Resources.Designer.cs Properties\Settings.Designer.cs "进销存系统DataSet.Designer.cs" "进销存系统DataSet1.Designer.cs"
F:\Working\JXCGLXXXT\frmLogin.cs(30,19): 错误 CS0117: “JXCGLXXXT.DsloginTableAdapters.QueriesTableAdapter”并不包含“userlogin”的定义

最佳答案
我想错误并不在你粘帖的这些代码上,而是你的q.UserLogin(username, password)中的Sql语句及参数,尤其要注意你已经在数据库方面改过数据类型的字段Password,看看在这里数据类型是否匹配。

另外你最好将报错的消息粘贴出来,也许会得到更准确、更正确的答案!

对楼主评论的回答:
我说的不是IF语句的问题,我也知道你将数据库的字段改好了,而是你的应用程序中q.UserLogin的问题,里面的Sql语句有参数就是username和password,请注意其中的password参数的数据类型是否改了呢?
你的 if ((int)q.UserLogin(username, password) != 0)这句话的意思应该是如果能找到用户名为username中的值并且密码是password中的值,则(int)q.UserLogin(username, password)的结果就是大于0的数,因此整个意思应该是:如果在q.UserLogin所关联的表中用户名等于username中的值且密码等于password中的值的查询记录结果不等于0,那么就运行if大括号中的代码,否则就运行else大括号中的代码。
2008/5/10 14:07:50 回答者:刚刚


提问者对于答案的评价:多谢您的帮助,问题终于解决了,是我的数据集中的名称错了,直接把名称换成Username,就成功了!
其它回答(2)
 if ((username,password) != 0),这样写一定是有问题的。DsloginTableAdapters.QueriesTableAdapter q = new JXCGLXXXT.DsloginTableAdapters.QueriesTableAdapter();
这个是什么,我不知道。你不就是想判断一下用户密码是否正确吗?那你得让你输入的password和你原来让设置的密码进行比较,如果在数据库中,用户名和密码作为参数据到数据库中Select一下,看看有没有这样的记录,若有则说有这个用户存在,从数据库中取出密码字段与你的password 比较。若没有这样的记录,则说明用户不存在,提示一下就行了。

1周前   回答者:JackLee - 菜鸟二级
这段代码应该不用改

你那个方法是AD生成的,返回的值应该就是数值,没记错表示成功或失败的

6天前   回答者:G yc {Son of VB.NET} - 小虾三级
评论
1周前   junli2201 :
DsloginTableAdapters.QueriesTableAdapter q = new JXCGLXXXT.DsloginTableAdapters.QueriesTableAdapter(); 
这是在数据集里建立的一个查询,这样省事把.
具体的代码怎么写啊!
            string username = cboUsername.Text;
            int password = int.Parse(txtPassword.Text);

            DsLoginTableAdapters.QueriesTableAdapter q = new WindowsApplication1.DsLoginTableAdapters.QueriesTableAdapter();
            if ((int)q.UserLogin(username, password) != 0)
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                MessageBox.Show("Password Wrong!");
                txtPassword.SelectAll();
                txtPassword.Focus();
            }
        }
这样写就没 问题,只是我数据库中的passwrod 是int ,现在我把数据库该成,varcher(50)了,然后把代码改了就出现问题了.请问改后的代码怎么写啊!
6天前   junli2201 :
数据库改了,if语句改怎么写啊! If (q.-----(username,password)!=0) 我感觉----应该有问题,不知道添什么.报的错是------ 已启动生成: 项目: JXCGLXXXT, 配置: Debug Any CPU ------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /debug+ /debug:full /optimize- /out:obj\Debug\JXCGLXXXT.exe /resource:obj\Debug\JXCGLXXXT.frmBjd.resources /resource:obj\Debug\JXCGLXXXT.frmLogin.resources /resource:obj\Debug\JXCGLXXXT.frmMain.resources /resource:obj\Debug\JXCGLXXXT.frmQgd.resources /resource:obj\Debug\JXCGLXXXT.frmSplash.resources /resource:obj\Debug\JXCGLXXXT.Properties.Resources.resources /target:winexe Dslogin.Designer.cs DsQgd.Designer.cs frmBfd.Designer.cs frmBjd.cs frmBjd.Designer.cs frmLogin.cs frmLogin.Designer.cs frmMain.cs frmMain.Designer.cs frmQgd.cs frmSplash.cs frmSplash.Designer.cs Program.cs Properties\AssemblyInfo.cs Properties\Resources.Designer.cs Properties\Settings.Designer.cs "进销存系统DataSet.Designer.cs" "进销存系统DataSet1.Designer.cs"
F:\Working\JXCGLXXXT\frmLogin.cs(30,26): 错误 CS1026: 应输入 )
F:\Working\JXCGLXXXT\frmLogin.cs(30,26): 错误 CS1525: 无效的表达式项“,”
F:\Working\JXCGLXXXT\frmLogin.cs(30,27): 错误 CS1002: 应输入 ;
F:\Working\JXCGLXXXT\frmLogin.cs(30,35): 错误 CS1002: 应输入 ;
F:\Working\JXCGLXXXT\frmLogin.cs(30,35): 错误 CS1525: 无效的表达式项“)”
F:\Working\JXCGLXXXT\frmLogin.cs(30,41): 错误 CS1002: 应输入 ;
F:\Working\JXCGLXXXT\frmLogin.cs(30,41): 错误 CS1525: 无效的表达式项“)”
F:\Working\JXCGLXXXT\frmLogin.cs(30,42): 错误 CS1002: 应输入 ;
F:\Working\JXCGLXXXT\frmLogin.cs(35,13): 错误 CS1525:
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除