我试试,但是如果没有记录执行什么呢你可以这样写 public memberdetails login(string username,string password) { string strconn="server=(local),database=shopping,uid=sa,pwd=wantgirl"; SqlConnection conn=new SqlConnection(strconn); SqlCommand mycommand=new SqlCommand("select * from member where name='"+username+"' and password='"+password+"'",conn);
为什么不用
if(myreader.read())来判断?
ps:楼主的数据库的password很有个性
谢谢。
但是我联想到如果是>1条记录,它赋值是重第一条开始的?
怎么循环呢
public memberdetails login(string username,string password)
{
string strconn="server=(local),database=shopping,uid=sa,pwd=wantgirl";
SqlConnection conn=new SqlConnection(strconn);
SqlCommand mycommand=new SqlCommand("select * from member where name='"+username+"' and password='"+password+"'",conn);
memberdetails m=null;
try
{
conn.Open();
SqlDataReader myreader=mycommand.ExecuteReader();
if(myreader.read())
{
m = new memberdetails();
m.memberid=myreader.GetString(0);
m.realname=myreader.GetString(2);
}
return m;
}
catch (SqlException)
{
return null;
}
finally
{
conn.Close();
} }这样当你返回null的时候,就是没有匹配成功
这样写对吗
c:\inetpub\wwwroot\sell\components\member.cs(61): “sell.components.member.login(string, string)” : 并非所有的代码路径都返回值
行 36: //sell.components.memberdetails mydetails=new sell.components.memberdetails();
行 37: mydetails=obj.login(tname.Text,tpassword.Text);
行 38: if(mydetails.memberid!="0")
行 39: {
行 40: //Response.Cookies["memberid"].Value=y;