Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法保存到数据库或从中检索(正确信息)_C#_Sql_Entity Framework_Console_Sql Server Ce - Fatal编程技术网

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根本不会更新。。。