C# 无法保存到数据库或从中检索(正确信息)
我正在使用以下命令将数据成功保存到数据库:C# 无法保存到数据库或从中检索(正确信息),c#,sql,entity-framework,console,sql-server-ce,C#,Sql,Entity Framework,Console,Sql Server Ce,我正在使用以下命令将数据成功保存到数据库: try { // Save the new Client now. Profile profile = new Profile() { Salutation = Salutation, FirstName = FirstName, MiddleName = MiddleName, LastName = LastName, Gender = Gende
try
{
// Save the new Client now.
Profile profile = new Profile()
{
Salutation = Salutation,
FirstName = FirstName,
MiddleName = MiddleName,
LastName = LastName,
Gender = Gender,
DateOfBirth = DateOfBirth,
CompanyName = ClientCompanyName,
StreetAddress = StreetAddress,
Suburb = Suburb,
PostCode = PostCode,
State = State,
Country = Country,
ABN = ABN.ToString(),
ACN = ACN.ToString(),
TelephoneNumber = TelephoneNumber,
MobileNumber = MobileNumber,
EmailAddress = EmailAddress
};
database.Profiles.Add(profile);
database.SaveChanges();
Console.WriteLine("Client saved.");
}
catch (Exception exception)
{
Console.WriteLine(exception.Message + Environment.NewLine + exception.InnerException);
}
它说它被拯救了。但是当我查看数据库时,什么都没有
而且,当我尝试获取刚才添加的人的名字时,它会返回整个SELECT语句,而不是他们的名字:
var hisname=database.Profiles.Wherex=>x.FirstName==Jase
有什么好处
这是一个C Windows控制台应用程序
同样的代码也适用于我的网站
使现代化
这是当我尝试选择时它返回给我的结果:
您还没有向我们显示您的连接字符串,根据您的问题,不清楚您是否仅在Visual Studio内部或在VS外部运行应用时才看到此行为 如果您碰巧使用SQL Server Express和AttachDbFileName=somename.mdf方法,并且在Visual Studio中运行应用程序时观察到这种行为,请继续阅读 整个用户实例和AttachDbFileName=方法都有缺陷-最多!在Visual Studio中运行应用程序时,它将围绕.mdf文件从应用程序的数据目录复制到输出目录-通常是。\bin\debug-应用程序运行的地方,很可能插入工作正常-但最终您看到的是错误的.mdf文件 如果您想坚持使用这种方法,那么请尝试在myConnection.Close调用上放置一个断点-然后使用SQL Server Mgmt Studio Express检查.mdf文件-我几乎可以肯定您的数据在那里 在我看来,真正的解决办法是 安装SQL Server Express,您已经完成了安装 安装SQL Server Management Studio Express 在SSMS Express中创建数据库,并为其指定一个逻辑名称,例如MyDatabase 使用在服务器上创建时提供的逻辑数据库名称连接到它,并且不要混淆物理数据库文件和用户实例。在这种情况下,您的连接字符串类似于:
Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
其他一切都和以前一样
您可以向我们展示您到数据库的连接字符串吗?以及如何生成上下文?您使用哪个库连接到数据库?大多数库在保存记录后都需要提交。例如,在NHibernate中,您可以执行record.Saveentity;它会很高兴地告诉您它已被插入,但您还必须调用session.Commit;我正在提交,请参阅问题代码,我正在使用:database.Saveentity;我正在C控制台应用程序中使用实体框架。连接字符串?都是本地的。我打开Visual Studio,打开我的应用程序,在解决方案资源管理器中右键单击项目名称,添加新的MS SQL Compact数据库,然后为其选择实体模型,然后向数据库中添加表,然后更新实体模型,使其包含数据库中的所有内容。我的数据源指向我在visual studio中创建的数据库文件,该文件位于我的硬盘驱动器上。我的数据库是*.sdf-而不是*.mdf。@Jase:谢谢您的信息-在下一个问题中,您应该在问题中提及相关信息,以帮助我们诊断您的问题@Jase:那么,当你在VisualStudio中运行应用程序时,你是否看到了这种行为?或者甚至当您自己从Windows资源管理器运行它时?问题很可能是相同的:VS将围绕您的.sdf数据库文件进行复制,插入到.sdf的副本中,然后最终将该副本丢弃-因此您正在查看的.sdf根本不会更新。。。