Tag: sql server

SQL Server对象资源管理器未显示数据库

这是一个非常小的代码优先EF6项目。 我添加了迁移并成功更新了数据库。 这是输出: PM> update-database -Verbose 使用StartUp项目’ChattyServer’。 使用NuGet项目’ChattyDataModel’。 目标数据库是:’ChattyDataModel.ChattyContext’(DataSource:。\ SQLEXPRESS,Provider:System.Data.SqlClient,Origin:Convention)。 没有待定的显式迁移。 运行种子方法。 但是,当我打开SQL Server对象资源管理器时,我找不到我的数据库: UPD : app.config – 我应该将哪个连接字符串用于LocalDb ? UPD :更新了app.config ,添加了: 然后创建了一个新的迁移并更新了一个数据库 SQL Server对象资源管理器中没有任何更改 UPD我将目录从master更改为chatty,创建了新的迁移并更新了db-still无法在SQL Server对象资源管理器中看到db

我该如何更新SQL表逻辑

我有一个结构为, Table 3 Fruit ID – Foreign Key (Primary Key of Table 1) Crate ID – Foreign Key (Primary Key of Table 2) 现在我需要执行一个查询, 如果 Fruit ID 已经在Table中,则 更新 Fruit ID Crate ID ,如果没有,则将表3中的记录作为新记录插入。 这就是我现在在代码中得到的, private void RelateFuirtWithCrates(List selectedFruitIDs, int selectedCrateID) { string insertStatement = “INSERT INTO Fruit_Crate(FruitID, CrateID) Values ” + “(@FruitID, @CrateID);”; ?? […]

从两个逗号分隔的参数更新表作为输入

我在前端有一个Gridview,其中Grid有两列:ID和Order,如下所示: ID Order 1 1 2 2 3 3 4 4 现在用户可以像前端Gridview一样更新订单: ID Order 1 2 2 4 3 1 4 3 现在,如果用户单击“保存”按钮,则ID和订单数据将作为@sID =(1,2,3,4)和@sOrder =(2,4,1,3)发送到存储过程 现在,如果我想更新订单并进行保存,我想将其存储到数据库中。 通过存储过程如何更新到表中以便更新表,而选择它时会给我以下结果: ID Order 1 2 2 4 3 1 4 3

Convert.ToString(DateTime)产生英国格式而不是美国格式

我遇到一个问题,即C#DateTime字符串无法转换为SQL DateTime,因为它被神秘地格式化为英国日期(dd / MM / yyyy)。 以下是一系列事件: 在美国的远程服务器上创建一个对象,并将其序列化为xml。 xml在CA中的本地计算机上反序列化为对象。 序列化日期如下:2011-07-13T09:56:57.0542425 应用程序尝试将对象保存到调用前面提到的存储过程的数据库。 它(不必要地)将日期转换为字符串,然后使用Convert.ToString(DateTime)将其作为参数传递给sproc。 sproc因SqlException“将数据类型nvarchar转换为datetime时出错”而失败,因为它为DateTime类型参数接收的字符串是dd / MM / yyyy格式(数据库语言是英语US)。 现在,代码不应该将日期时间转换为字符串,只能转换回SQL中的日期时间,但这个问题刚刚开始发生(在多台计算机上),一切都很好,超过一年。 所以我认为数据库或操作系统的文化必须刚刚改变,导致它们使用不同的日期格式。 令我惊讶的是,将操作系统(Windows 7)从英语(加拿大)更改为英语(美国)并重新启动后,问题仍然存在。 为了使其更加混乱,当在本地创建相同类型的对象而不是反序列化时,不会发生错误,无论区域设置如何。 唯一的区别是序列化版本发生在Windows服务中,本地创建的对象版本发生在Windows应用程序中。 它们都使用自己的调用Convert.ToString(DateTime)的程序集副本,但它们使用的是该程序集的相同版本。 我完全糊涂了。 PS .NET 2.0和SQL Server 2005

EF6 – ExecuteSqlCommandAsync – 获取返回参数(声明标量变量错误)

我有以下代码: object[] parameters = { new SqlParameter(“@val1”, val1), new SqlParameter(“@val2”, val2), new SqlParameter { ParameterName = “@retVal”, SqlDbType = SqlDbType.Int, Direction = ParameterDirection.ReturnValue, Value = -1 } }; await context.Database.ExecuteSqlCommandAsync(“EXEC @retVal = Example_SP @val1, @val2”, parameters); 我正在使用的SP很好,并在SQL MS中返回一个值。 但是当我使用EF执行它时,我被告知我必须声明标量变量@retVal’。 这不是我的SqlParameter吗? 我已经尝试从参数中移除’@’符号,正如一些人在其他地方所建议的那样,但据我所知,’@’符号是可选的,无论如何都没有区别。 如何使用ExecuteSqlCommandAsync从SP获取返回值而不会导致错误? 谢谢!

多个数据库,模型略有变化。 如何允许Entity Framework在运行时删除列?

这是对“ 具有轻微变化模型的多个数据库的跟进。如何允许EF在运行时使用不同的数据库结构? ”问题: 我正在使用.NET4.5 , MSSQL , Oracle , .NET4.5在全公司(许多部门)全球使用的系统上查询属于我们部门的不同数据库,这些数据库大多数是相同的EF模型,一些数据库是Oracle和一些是Microsoft SQL ,有些是开发或uat,有些是日志。 我正在为Oracle和MSSQL数据库使用不同的EF模型。 一个要求是在运行时在数据库之间切换,这很容易, public AggregatorEntities(string connectionString) : base(connectionString) { } 但它确实有副作用 – 许多数据库(dev,uat,dr,logs,…)与Live不同(模型是从Live生成的),这在查询这些数据库时会导致错误。 管理层了解情况,他们可以使用某个特定数据库的开发人员对全局查询系统进行更改,以便测试人员和uat查询数据。 但是,他们希望进行更改,以便花费最少的时间来完成此操作 – 因为每个涉及数据库更改的项目都需要额外的成本。 我基本上需要构建一个’可以处理所有’弹性系统,当一个人在EF更改数据库时,会做一些事情来适应特定的数据库。 有不同的故障情况: 1.表上列的名称相同但实体中的类型不同 2.表上没有列,但EF中有一个实体 3.桌面上不在EF上的其他列 4.数据库中不在EF模型中的其他表 5.数据库中没有表,但EF模型中有实体。 这是在运行时删除EF模型但不在数据库中的列的情况(上面的第3点)。

使用C#反向工程SSIS包

需要提取source和destination source , destination和column名称。 为什么我要这样做是因为我有数以千计的软件包并且打开每个软件包平均有60 to 75列,列出所有必需的信息将花费大量时间并且不是一次性要求而且这项任务已经完成目前我的组织每两个月手动一次。 我正在寻找一些方法来逆向工程,将所有包保存在一个文件夹中,然后浏览每个包并获取信息并将其放入一些电子表格中。 我想在xml中打开包并获取感兴趣节点的信息并放入电子表格,这有点麻烦。 请建议可以从哪个库开始。

C#数据库ConnectionString属性尚未初始化

我正在尝试在我的数据库中插入值,每当我尝试添加它时,我的程序崩溃,给我一个错误,ConnectionString属性尚未初始化,但我正确初始化它。 这是我的代码: private static string conStr = @”Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\aldrin\documents\visual studio 2013\Projects\MidtermAssignment_Ramirez\MidtermAssignment_Ramirez\MasterFile.mdf;Integrated Security=True”; SqlConnection myCon = new SqlConnection(); private int studId, year, units; private string fName, lName, mName, course, payment; public void insertRecord() { myCon.Open(); SqlCommand insertInfo = new SqlCommand(“spInsertStudentInformation”, myCon); insertInfo.CommandType = CommandType.StoredProcedure; insertInfo.Parameters.Add(“@studId”, SqlDbType.Int).Value = studId; insertInfo.Parameters.Add(“@fName”, SqlDbType.VarChar).Value = fName; insertInfo.Parameters.Add(“@lName”, SqlDbType.VarChar).Value = lName; […]

如何更改Entity Framework为Datetime生成SQL精度的方式

我有一个表使用id和DateTime列是pk,但当我尝试按entity framework更新数据时,如下所示: using (Entities context = new Entities()) { var item = (from item in context.BatchData where item.Id == 2 select item ).FirstOrDefault(); item.Title = “EF6TEST”; context.SaveChanges(); } 我收到一个错误 存储更新,插入或删除语句会影响意外的行数(0)。 记录SQL后,我知道原因。 SQL看起来像这样 ‘update [dbo].[BatchData] set [BatchData_Title] = @0 where (([BatchData_Id] = @1) and ([BatchData_CreatedDateTime] = @2)) select [BatchData_Rowversion] from [dbo].[BatchData]BatchUploadData where @@ROWCOUNT > 0 and […]

LINQ Query返回第一个结果的多个副本

我有一个在数据库中定义的视图(archiveContentPreviews),它将几个表连接在一起,在Linq中它有一个实体键(ArchiveID),我想用这个简单的查询查询这个视图: var x = from fields in entities2.archiveContentPreviews where fields.ArchiveID == archiveID select fields; return x.ToList(); 它返回确切的结果数但是第一个结果的多个副本的问题,当我在SQL管理工作室中执行该查询时,它返回正确的结果,任何帮助?!