问题描述
privatevoidbutton1_Click(objectsender,EventArgse){Form2form2_01=newForm2();OleDbConnectionaConnection=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Application.StartupPath+"/"+"MySystem.mdb");aConnection.Open();///打开数据StringSQLString="select*fromTuserwhereUname='"+textBox1.Text.Trim()+"'andUpassword='"+textBox2.Text.Trim()+"'";///设置sql查询语句Stringastring="insertinto(Uname,Upassword)values('"+DateTime.Now+"','"+textBox2.Text+"')";OleDbDataAdapteradapter=newOleDbDataAdapter(astring,aConnection);///创建适配器,执行sql查询OleDbDataAdaptermyadapter=newOleDbDataAdapter(SQLString,aConnection);///创建适配器,执行sql查询DataSetds=newDataSet();///建立数据集adapter.Fill(ds);myadapter.Fill(ds);///将查询结果加入ds中if(ds.Tables[0].Rows.Count>0)///判断用户名密码是否正确{form2_01.Show();aConnection.Close();this.Hide();}else{MessageBox.Show("对不起,输入用户名或密码有误");aConnection.Close();}}
解决方案
解决方案二:
把astring打印出来,看看,DateTime.Now是不是应该转换为StringDateTime.Now.ToString
解决方案三:
"insertinto(Uname,Upassword)values('"+DateTime.Now+"','"+textBox2.Text+"')"这是闹哪样,你把当前时间给用户名字段赋值??
解决方案四:
Uname是什么类型的?要保持类型一致
解决方案五:
DateTime.Now.tostring();
解决方案六:
insert语句有问题。都没指定insert到哪个表。此外,你得把当前日期insert到你新加的time类型的列中,而不是给Uname列
解决方案七:
引用5楼andywangguanxi的回复:
insert语句有问题。都没指定insert到哪个表。此外,你得把当前日期insert到你新加的time类型的列中,而不是给Uname列
细看下来,你这段代码非常糟糕。至少先判断登录成功了才记录登录时间。另外,执行非查询类sql语句,用SqlCommand的ExecuteNonQuery方法
解决方案八:
别的不说==这个你在数据库把那个时间字段的默认值改为getdate()不就什么都没事了么
解决方案九:
别用拼接sql语句用参数传递很快就知道错在哪了。
解决方案十:
在注册表中增加登录时间问题如果您用insertinto就是等于往新表中插入时间,为了记录一个时间不必要新建一个表如果是记录登录时间也可以记录到注册表中,那么修改注册表中的上次登录时间即可!Stringastring="updateTusersetDataTe='"+DateTime.Now+"'"+"whereUname='"UserName+"'";//根据登录用户名修改上次登录时间