我一方面将数据库的增,删,改等方法根据返回的整型,提示是否成功显示给用户,
另一方面想得到如果操作失败时得到错误信息.
如何办呢?把错误写入文件好,还是数据库好?我想写入数据库是否好些,因为后台管理可直接查看.但我不知如何做.
写入数据库要有出错时间,原因等.还有,给用户的操作成功失败的提示在哪一层捕获方便些.如何做,谁能帮我一下,最好有源代码示例,DAL层,
public int TabUseAdd(gotdot3.Model.Tab_user model)
{
int i=0;
StringBuilder strSql=new StringBuilder();
try
{
strSql.Append("insert into [tab_user](");
strSql.Append("username,detail,f)");
strSql.Append(" values (");
strSql.Append("@username,@detail,@f)");
SqlParameter[] parameters = {

new SqlParameter("@username", SqlDbType.Char,10),
new SqlParameter("@detail", SqlDbType.VarChar,100),
new SqlParameter("@f", SqlDbType.Float,8)};
parameters[0].Value = model.username;
parameters[1].Value = model.detail;
parameters[2].Value = model.f;

i=helper.ExecuteNonQuery(cs,CommandType.Text,strSql.ToString(),parameters);
}
catch(Exception error) 
{  



}  
return i;

}
BLL层:
public int TabUserAdd(gotdot3.Model.Tab_user Model)
{
gotdot3.Dal.tab_user dal=new gotdot3.Dal.tab_user();
return dal.TabUseAdd(Model);
}
WEB界面:
private void Btn_Add_Click(object sender, System.EventArgs e)
{
model.username=this.Txt_username.Text;
model.detail=this.Txt_detail.Text;
model.f=Convert.ToSingle(this.Txt_float.Text); int i=0;
                                                      i=bll.TabUserAdd(model);
if (i==1)
{
this.Label1.Text="操作成功";

}
else
{
this.Label1.Text="操作失败";
}

}

解决方案 »

  1.   

    错误日志写在数据库中比较好些,便于操作
    可以将日志定期导出到txt文本中,导出后将已经导出的就可以删除了可以在操作后的返回值中做判断,统一一下操作成功返回1,失败返回0
    中间出现异常时直接将得到的异常提示信息存入数据库中
      

  2.   

    我在出错时这样写入库却错,是什么原因?提示:第1行‘必须声明变量',附近有语法错误。
    catch (SqlException err)
    {

    string cs= ConfigurationSettings.AppSettings["SqlServerConnectionString"];
    helper.ExecuteNonQuery(cs,CommandType.Text,"insert into [tab_err] ([error]) values('"+err.Message.ToString()+"')");

    }
      

  3.   

    catch(SqlException err) 
    {  


    string sql="insert into [tab_err] ([error]) values('"+
    FormatString(err.Message.ToString())+
    FormatString(err.Source.ToString())+
    FormatString(err.Number.ToString())+
    FormatString(err.LineNumber.ToString())+"')";

    helper.ExecuteNonQuery(cs,CommandType.Text,sql);

    }  
    我现在以经把出错信息写入库里,可是我想得到是那个文件的那一行错出何得到,err.Number.ToString()和err.LineNumber.ToString()不对。