Tag: sql server

从ADO.NET确定SQL Server的版本

我需要确定连接字符串连接C#控制台应用程序(.NET 2.0)的SQL Server版本(在此特定情况下为2000,2005或2008)。 任何人都可以就此提供任何指导吗? 谢谢,MagicAndi 更新 我希望能够在可能的情况下确定ADO.NET连接对象的SQL Server版本。

需要一次一个地遍历SQL表行(表太大而无法使用adapter.Fill)

我很容易通过这样的小型SQL Server 2005表进行读取: string cmdText = “select * from myTable”; SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connection); DataTable table = new DataTable(); adapter.Fill(table); 不幸的是,这种方法似乎将整个表加载到内存中,这根本不适用于我正在使用的巨大表。 我希望能够一次一行地遍历表,这样一次只需要一行存储在内存中。 有点像: foreach (DataRow row in rowIteratorObject) { // do something using the row // current row goes out of scope and is no longer in memory } 类似于您可以使用StreamReader一次处理一行文本文件的方式,而不是一次性读取所有文本文件。 有没有人知道用表行做这个的方法(或者,如果我咆哮错误的树,另一种解决方案)?

使用c#进行查询validation

我在c#中寻找一个查询validation器,它允许我从文本框中解析SQL文本,并在发送它执行之前validation它是否正确。 (MS SQL或DB2查询)。

在自定义SSIS组件中找不到SetDataTypeProperties的方法

我正在尝试构建一个简单的自定义SSIS组件,它查看单个输入列并validation它,根据每行的值创建bool类型的输出列。 我已经成功构建了一个更简单的组件,它接受一个值并对其进行转换:这不需要摆弄输出列。 在这个例子中,我需要接受一个字符串并输出一个布尔值,组件需要知道它输出一个布尔值,所以我可以将值输入条件分割。 我正在努力添加输出列。 基于Microsoft的代码示例 ,我已经这样做了: public override DTSValidationStatus Validate() { IDTSOutput100 output = ComponentMetaData.OutputCollection[0]; IDTSOutputColumn100 outputcol = output.OutputColumnCollection.New(); outputcol.Name = “IsValid”; outputcol.SetDataTypeProperties(DataType.DT_BOOL, 0, 0, 0, 0); return DTSValidationStatus.VS_ISVALID; } 然后我尝试在ProcessInput步骤中填充它: public override void ProcessInput(int inputID, PipelineBuffer buffer) { while (buffer.NextRow()) { string str = buffer.GetString(0); buffer.SetBoolean(0, IsValid(str)); // validation code not relevant } } […]

我在哪里可以找到“Microsoft.SqlServer.BatchParser.dll”?

可能重复: 找不到microsoft.sqlserver.batchparser.dll 我安装了Microsoft SQL Server 2008 R2。 我想在C#中包含Microsoft.SqlServer.BatchParser.dll作为Assebly。 但是我找不到那个dll。 如果我去我的GAC文件夹,Assebly就在那里: 但是VS2008中的引用对话框不会显示给我。 我在哪里可以找到或如何获得该DLL?

在EF中跨数据库查询

有没有办法在Entity Framework中实现跨数据库查询? 让我们假设我有两个实体User和Post,User实体在database1中,Post在database2中,这意味着这些实体在不同的数据库中。 我应该如何在entity framework中获得用户的post?

将SQL 2008 DB R2还原为SQL2008(无r2)

在我的开发者PC上安装了SQL 2008 R2 在内部服务器上安装了SQL 2008 R2(这里托管了一些应用程序) 在外部的第三方托管公司使用SQL 2008(没有r2)。 所以当我在我的开发者PC上创建数据库时,我需要在外部托管服务器上恢复,这是SQL 2008(没有r2)….但是我得到了一个构建版本错误……它说SQL2008 r2有更高的内部版本号所以我无法在w / o r2服务器上恢复。 我想在没有R2服务器上创建数据库并在我的localhost上恢复并进行更改并恢复到w / o r2服务器,但它说同样的错误……内部版本号已更改。 我以为我可以在我的开发者电脑上删除r2版本并使用SQL 2008 w / o r2,但问题仍然是我无法将数据库从内部服务器恢复到我的开发者电脑…… 🙁 所以简而言之:如果我想在SQL2008 R2和SQL2008之间恢复/备份数据库,如何处理这个(我需要数据库的数据?任何属性分配给数据库或其他什么? 是否有一个程序可以使用SQL2008 R2 DB作为SQL2008 DB? 我无法触及服务器上的SQL 2008版本…… 请指教?

entity framework6和SQL Server序列

我正在使用EF6与数据库第一个项目。 我们要求使用序列,这是SQL Server 2012中引入的一个特性(我相信)。 在表上,标识列具有使用以下设置的默认值: (NEXT VALUE FOR [ExhibitIdentity]) 之所以使用它,因为我们有两个表来存储不同部门的展览信息,但我们需要在两个表中都具有唯一性,因为它在许多其他共享公用表中用作参考。 我的问题是在entity framework中使用它,我用谷歌搜索但找不到与EF6是否支持它们有关的信息。 我已经尝试在EFdesigner设置为Identity但是在保存时会抱怨零行受到影响,因为它使用scope_identity来查看插入是否成功但是当我们使用序列时,它返回为null。 将其设置为computed会抛出一个错误,说我应该将其设置为identity并将其设置为none会导致它将0作为id值插入并失败。 我是否需要调用函数/过程以获取下一个序列,然后在保存记录之前将其分配给id值? 任何帮助深表感谢。

entity frameworkIsRowVersion()没有并发检查

我们有一个表,其中有一个名为Version的列,它被映射为SQL rowversion 。 这样做是因为我们有一个外部系统映射到我们的数据,这些数据依赖于每次更新表时更改的列。 最初我们希望这由SQL处理,但现在我们发现我们有Optimistic Concurrencyexception。 虽然这些例外是为了保护数据被覆盖,但对于我们的情况,我们并不关心这一点。 我们只是希望timestamp继续递增,而entity framework不会检查它是否存在并发问题。 有没有办法做到这一点? 制图: Property(t => t.Version).IsRowVersion();

entity framework4.2:获取正确的数据库错误

在我的ASP.NET MVC 3应用程序中,我使用EF 4.2。 在我的数据库中,我对列有一个唯一的约束。 我尝试插入相同的数据,以便看到我得到的但我收到以下错误: 更新条目时发生错误。 有关详细信息,请参阅内部exception 在内部exception内部,我可以看到关于唯一约束的完整错误。 但是如何才能唯一地捕获此exception以告诉用户: 您再次输入相同的值。 这是我目前所做的事情: try { UpdateModel(conditionType, null, null, new string[] { “ConditionTypeId” }); _conditionTypeRepository.Save(); return RedirectToAction(“conditiontype”); } catch (Exception ex) { ModelState.AddModelError(“”, “There was an error while updating: ” + ex.Message); } 但这是一种通用方法。 我想做的是提供一个特定的消息。 有什么想法吗? 编辑: 我累了下面但是这次它没有抓住它: catch (SqlException ex) { if (ex.Number == 2627) { […]