2016-01-17 5 views
0

Я новичок в ASP.Net. Я использую первый метод базы данных Entity Framework. Мне нужно сохранить данные в моей базе данных MUSIC в таблице LogTable. Я пробовал много способов. Ничего не работает. Наконец я попытался это:Ничего не записывается в базу данных

в Login.aspx

using System; 
using System.Configuration; 
using System.Web; 
using System.Web.UI; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 
using Microsoft.Owin.Security; 
using MusicShop.Models; 

namespace MusicShop.Pages.Accounts 
{ 
public partial class Login : Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void btnLogin_OnClick(object sender, EventArgs e) 
    { 
     var userStore = new UserStore<IdentityUser>(); 

     userStore.Context.Database.Connection.ConnectionString = 
      ConfigurationManager.ConnectionStrings["MUSICConnectionString"].ConnectionString; 

     var manager = new UserManager<IdentityUser>(userStore); 

     var user = manager.Find(txtUserName.Text, txtPassword.Text); 


     if (user != null) 
     { 
      InsertUserLog(); 
      var authenticationManager = HttpContext.Current.GetOwinContext().Authentication; 
      var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); 

      authenticationManager.SignIn(new AuthenticationProperties 
      { 
       IsPersistent = false 
      }, userIdentity); 


      Response.Redirect("~/Index.aspx"); 
     } 
     else 
     { 
      litStatus.Text = "Invalid username or password"; 
     } 
    } 

    private void InsertUserLog() 
    { 
      LogModel model = new LogModel(); //Add a new model 
      var logtable = new LogTable 
      { 
       IP = Request.ServerVariables["REMOTE_ADDR"].ToString(), 
       //You could set a break point to check the value. 
       AGENT = Request.ServerVariables["http_user_agent"].ToString(), 
       REQM = Request.ServerVariables["request_method"].ToString(), 
       SERVER = Request.ServerVariables["server_name"].ToString(), 
       PORT = Request.ServerVariables["server_port"].ToString(), 
       SW = Request.ServerVariables["server_software"].ToString(), 
       DNS = Request.ServerVariables["REMOTE_HOST"].ToString() 
      }; 

      //set value 
      var error = model.InsertLog(logtable); 

      if (error != null) Response.Write(error); 

    } 
} 
} 

в LogModel.cs

public string InsertLog(LogTable logTable) 
{ 
    try 
    { 
     MUSICEntities db = new MUSICEntities(); 
     db.LogTables.Add(logTable); 
     db.SaveChanges(); 
     return null; 
    } 
    catch (Exception e) 
    { 
     return "Error:" + e; 
    } 
} 

Нет ошибок. Но в базу данных ничего не добавляется. Может ли кто-нибудь вести меня? Пожалуйста, простите меня, если это глупая ошибка.

ответ

0

Возможно, вы не видите ошибку, потому что не проверяете ее.

попытайтесь вывести ошибку, которую вы возвращаете.

var error = model.InsertLog(logtable); 

if(error != null) Response.Write(error); 

Я также заметил, что вы просто конкатенации экземпляр Exception ...

вы, вероятно, следует сказать "Error:" + e.Message или "Error:" + e.StackTrace

Поскольку вы, кажется, опираясь на ToString() метод класса Exception. Не уверен, сколько информации вы выберете.

+0

Все еще ничего. Нет ошибки –

+0

@AmruthaAJ Можете ли вы разместить больше кода Login.aspx .. вы уверены, что этот код работает? вы можете установить контрольную точку, чтобы убедиться, что она выполняется. – scartag

+0

код запущен. Все остальные таблицы, кроме LogTable, заполняются, когда пользователь регистрируется в –

Смежные вопросы