使用mvc4剃须刀连接到mysql数据库c#[错误]
嗨guyz我去了这个错误代码:执行命令定义时发生错误。详情请参阅内部例外。在搜索我的文字到数据库..使用mvc4剃须刀连接到mysql数据库c#[错误]
private bool IsValidRegisterNewAcct(string acctname, string dispname, string email, string password)
{
var crypto = new SimpleCrypto.PBKDF2();
bool IsValid = false;
IsValidErrorMessage = "";
IsValidErrorMessageInt = 0;
string Newacctname = crypto.Compute(acctname.ToString());
//try
//{
using (var db = new MainDbContext())
{
//db.Connection.Open();
var user = db.user.FirstOrDefault(u => u.AcctNameSalt == Newacctname);
//var user = db.osoa_user.FirstOrDefault(u => u.Email == email);
if (user != null)
{
IsValid = false;
//db.Connection.Close();
IsValidErrorMessage = "Account Name already Exist!";
}
else
{
var InsertNewAcctName = db.osoa_user.CreateObject();
InsertNewAcctName.UserId = Convert.ToString(Guid.NewGuid());
InsertNewAcctName.AcctName = acctname;
InsertNewAcctName.AcctNameSalt = crypto.Compute(acctname);
InsertNewAcctName.DisplayName = dispname;
InsertNewAcctName.Email = email;
InsertNewAcctName.EmailSalt = crypto.Compute(email);
InsertNewAcctName.Password = crypto.Compute(password);
InsertNewAcctName.PasswordSalt = crypto.Salt;
InsertNewAcctName.UserLevel = 2;
db.user.AddObject(InsertNewAcctName);
db.SaveChanges();
//db.Connection.Close();
IsValid = true;
}
}
/*
}
catch (Exception e)
{
IsValidErrorMessageInt = 1;
IsValidErrorMessage = e.Message + ". Pls. contact your Administrator.";
IsValid = false;
}
*/
return IsValid;
}
和错误是指向该代码:
var user = db.user.FirstOrDefault(u => u.AcctNameSalt == Newacctname);
UPDATE关于内部异常。我不知道如果给你正确的..我试图用这个代码:
try
{
}
catch (Exception e)
{
IsValidErrorMessageInt = 1;
IsValidErrorMessage = e.InnerException + ". Pls. contact your Administrator.";
IsValid = false;
}
MySql.Data.MySqlClient.MySqlException(0X80004005):在“字段列表”未知列“Extent1.DateCreated” MySql.Data.MySqlClient.MySqlStream.ReadPacket()在MySql.Data.MySqlClient.NativeDriver.GetResult(的Int32 & affectedRow,Int64的& insertedId)在MySql.Data.MySqlClient.Driver.GetResult(的Int32 statementId,的Int32 & affectedRows,Int64的&在MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior行为)MySql.Data.MySqlClient.MySqlDataReader.NextResult()MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId,布尔强制)在在System.Data.Common.DbCommand.ExecuteReader(的CommandBehavior行为)在System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,的CommandBehavior行为)MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader(的CommandBehavior行为)
从你的内部异常看起来好像你的MainDbContext
已经变得与你的数据库不同步(看起来像Extent1
有一个不存在于数据库中的列)。
尝试从模型中删除该属性并再次尝试。
啊它的作品!天哪!感谢Kai和rene也..... wuhuuuuu ...所以我有检查我的数据库或我的表总是如果它是同步到我的MainDBContext?这个ASP.net MVC 4比php更棘手和更难..因为在PHP它不重要,如果你只会打几个字段...但现在我开始喜欢这个ASP.net mvc4剃须刀..非常感谢先生詹姆斯: )上帝保佑:) – user2328935 2013-04-28 12:00:08
另一件事是真的可以放db.connection.open()并关闭?谢谢 – user2328935 2013-04-28 12:03:51
可能发生的情况是,您在数据库中有一列,生成了您的上下文,然后从数据库中删除该列 - 导致上下文不同步。如果您将*列添加到您的数据库并且您的上下文不同步,那很好,因为这意味着该列无法更新。但是,删除上下文是不同的,因为上下文将查询属于它的模型的所有属性,以使它们**具有**在数据库中。 – James 2013-04-28 12:04:23
你看过内部的异常吗? – Kai 2013-04-28 11:27:39
和内部例外说....? – rene 2013-04-28 11:27:53