Login方法adapter.Update(ds);抛异常
public static AdminUser Login(String username, String password, String ip)
{
DbConnection conn = DataAccess.GetConn();
try
{
String sql = "select * from ADMIN where username=@username";
DbDataAdapter adapter = DataAccess.GetAdapter(conn, sql);
adapter.SelectCommand.Parameters.Add(DataAccess.GetParameter("@username", username));
DbCommandBuilder cmdBuilder = DataAccess.GetCmdBuilder();
cmdBuilder.DataAdapter = adapter;
conn.Open();
DataSet ds = new DataSet();
adapter.Fill(ds);
if (ds.Tables[0].Rows.Count == 1)
{
DataRow row = ds.Tables[0].Rows[0];
// if (password.Equals(row["passwd"]))
{
DateTime now = DateTime.Now;
row.BeginEdit();
// row["last_login_time"] = now;
row["last_login_ip"] = ip;
// row["update_time"] = now;
row.EndEdit();
adapter.Update(ds);
AdminUser user = new AdminUser();
return user;
}
}
throw new UserNameException("用户名或密码错误");
}
catch (DbException ex)
{
throw new Exception("数据库错误!", ex);
}
finally
{
if (conn != null)
{
conn.Close();
}
}
}
运行正常的方法
public static void UpdateAboutUs(AboutUs aboutUs)
{
DbConnection conn = DataAccess.GetConn();
try
{
String sql = "select top 1 * from ABOUT";
DbDataAdapter adapter
= DataAccess.GetAdapter(conn, sql);
DbCommandBuilder cmdBuilder = DataAccess.GetCmdBuilder();
cmdBuilder.DataAdapter = adapter;
conn.Open();
DataSet ds = new DataSet();
adapter.Fill(ds);
DataRow row = ds.Tables[0].Rows[0];
row.BeginEdit();
row["title"] = aboutUs.Title;
row["keywords"] = aboutUs.Keywords;
row["description"] = aboutUs.Description;
row["address"] = aboutUs.Address;
row["tel"] = aboutUs.Tel;
row["fax"] = aboutUs.Fax;
row["email"] = aboutUs.Email;
row["icp"] = aboutUs.Icp;
row.EndEdit();
adapter.Update(ds);
ds.Clear();
}
catch (DbException ex)
{
throw new Exception("数据库错误!", ex);
}
finally
{
if (conn!=null)
{
conn.Close();
}
}
}
2 个解决方案
#1
#2
怎么解决呢?
#1
#2
怎么解决呢?