Asp.net 用于验证NIC号的登录页
我面临以下问题:我在Access 2010上有一个数据库,其中有Asp.net 用于验证NIC号的登录页,asp.net,Asp.net,我面临以下问题:我在Access 2010上有一个数据库,其中有NIC、Active和Page,所有字段都是数字类型。我想创建一个登录页面,将NIC(数字)作为用户的输入,然后根据其NIC将其重定向到特定页面 不同的人会看到不同的页面。。我在ExecuteScalar命令中遇到错误,可能是我的查询不正确,或者ExecuteScalar无法保留查询。。。我得到数据类型不匹配错误 try { FirsstPage f = new FirsstPage(); SecondPage se
NIC
、Active
和Page
,所有字段都是数字类型。我想创建一个登录页面,将NIC
(数字)作为用户的输入,然后根据其NIC将其重定向到特定页面
不同的人会看到不同的页面。。我在ExecuteScalar
命令中遇到错误,可能是我的查询不正确,或者ExecuteScalar
无法保留查询。。。我得到数据类型不匹配
错误
try
{
FirsstPage f = new FirsstPage();
SecondPage second = new SecondPage();
oledcon.Open();
string NIc = ( TextBox1.Text);
// string query = "select * from LogINTable where NIC='" + NIc + "'AND Active=0 AND page=1";
//string query = "select * from LogINTable where NIC='" + nic + "'AND Active=0";
string query = "SELECT * FROM LogINTable WHERE NIC= '" + NIc + "' AND Active=0 AND page=1";
//string query = "select
OleDbCommand comm = new OleDbCommand( query,oledcon);
string a = (string) comm.ExecuteScalar();
if (a != null)
{
Response.Redirect("FirsstPage.aspx");
string update = "update into LogINTable Active='1' where NIC='" + NIc + "' ";
//OleDbCommand com = new OleDbCommand();
//int b = Convert.ToInt32( com.ExecuteScalar());
}
else
{
Response.Redirect("SecondPage.aspx");
string update = "update into LogINTable Active='1' where NIC='" +NIc + "' ";
}
oledcon.Close();
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
finally
{
oledcon.Close();
}
问题是您使用的ExecuteScalar查询错误
string a = (string) comm.ExecuteScalar();
ExecuteScalar()将作为查询结果返回单个值
请将您的查询更改为类似blow的查询,它从数据库返回单个值,而不是整个列
Select NIC FROM LogINTable WHERE NIC= '" + NIc + "' AND Active=0 AND page=1"
资料来源:
我希望它能帮助您。问题是您使用的ExecuteScalar查询错误
string a = (string) comm.ExecuteScalar();
ExecuteScalar()将作为查询结果返回单个值
请将您的查询更改为类似blow的查询,它从数据库返回单个值,而不是整个列
Select NIC FROM LogINTable WHERE NIC= '" + NIc + "' AND Active=0 AND page=1"
资料来源:
我希望它能对您有所帮助。我或多或少地重写了您的整个问题,使其真正可读,删除所有l33t sp34k等。如果你想让人们花时间回答问题,如果他们必须先花5分钟来理解问题,他们就不太愿意帮助你,那么请注意演讲。选择*(除了在
EXISTS()
子句中)几乎总是一个坏主意,特别是在这里,你只需要一个列的值如果NIC
列是数字的,为什么要将该值加引号?请使用参数,以防止。我或多或少地重写了你的整个问题,以便实际可读,删除所有l33t sp34k等。如果你想让人们花时间回答问题,如果他们必须先花5分钟来理解问题,他们就不太愿意帮助你,那么请注意演讲。选择*(除了在EXISTS()
子句中)几乎总是一个坏主意,特别是在这里,您只需要一个列的值如果NIC
列是数字,为什么要将该值放在引号中?请使用参数,为了防止。感谢回复,但我仍然收到此错误:条件表达式中的数据类型不匹配。感谢回复,但我仍然收到此错误:条件表达式中的数据类型不匹配。