我是一个低级算法程序员,数据库并不是我真正的东西 - 所以如果有的话,这将是一个n00b问题.
我正在通过开发团队的DAO运行一个简单的SELECT查询.DAO返回包含查询结果的System.Data.DataTable对象.到目前为止,这一切都很好.
我现在遇到的问题是:
我需要从结果DataTable中第一行的某个字段中提取一个值 - 我不知道从哪里开始.微软对此非常困惑!Arrrg!
任何意见,将不胜感激.我没有提供任何代码示例,因为我认为这里不需要上下文.我假设所有DataTable对象都以相同的方式工作,无论您如何运行查询 - 因此任何其他信息只会让每个人都更加困惑.
我System.Data
在我的Windows服务项目中有一个参考.我一直得到Exception
:
无法加载文件或程序集'System.Data,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其依赖项之一.该系统找不到指定的文件.
我附上FusionLog
我的代码并发现以下内容.对于System.Data
只有Visual Studio是寻找在这里:
程序集管理器从:C:\ windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll加载
它应该在这里看(所有其他程序集都是System.Data)
程序集管理器从:C:\ windows\Microsoft.NET\Framework\v4.0.30319\clr.dll加载
如何指向我的System.Data
文件以查找正确的位置?
我的猜测是Microsoft Commerce Server
dll可能正在引用2.0文件夹.
为映射配置的伪代码(如下)是不可能的,因为拉姆达只允许我们访问类型的IDataReader,wheras在实际测绘,AutoMapper将达到到每一个每一个"细胞" IDataRecord
,而IDataReader.Read() == true
:
var mappingConfig = Mapper.CreateMap<IDataReader, IEnumerable<MyDTO>>();
mappingConfig.ForMember(
destination => destination.???,
options => options.MapFrom(source => source.???));
Run Code Online (Sandbox Code Playgroud)
任何人都可以想到在运行时使用AutoMapper配置或只是满足下面要求的其他动态方法的方法.
要求是支持任何IDataReader
可能具有与属性名称不匹配的列名称的传入,MyDTO
并且没有我可以依赖的命名约定.相反,我们会要求用户在运行时将预期的列名称与IDataReader
via中找到的实际列名称交叉引用IDataReader.GetSchemaTable()
.
.NET System.Data命名空间中的位置是在执行update-command时确定SQL Server 2K表中的行是否已在客户端程序读入后更改的代码,即客户端行的版本是"陈旧"?
我想使用反编译器查看代码并弄清楚它是如何确定发生并发冲突的.我知道它将与表中的timestamp列和/或@@ rowcount有关,但是我想知道当库执行包含在存储过程中的更新命令时发生了什么.
存储过程将具有以下结构:
create proc foo_update
@id int,
@rowversion timestamp,
@val varchar(5)
as
begin
update foo set a = @val
where id = @id and mytimestampcolumn = @rowversion;
end
Run Code Online (Sandbox Code Playgroud)
也就是说,如果因为where子句将客户端System.Data.DataRow中的rowversion与数据库中行的timestamp值进行比较而且因为proc成功运行而没有更改行,则不会更新行.不会产生错误.然而,SqlClient库在它们的帮助下,将此场景报告为并发冲突.
谢谢
尝试运行我的代码时,收到以下错误:
CS0234:名称空间"System.Data"中不存在类型或命名空间名称"OracleClient"(您是否缺少程序集引用?)
我已经包含对System.Data.dll
和的引用System.Data.OracleClient.dll
,但我仍然收到此错误.
错误是由using System.Data.OracleClient
我的命名空间声明中的行引起的.
c# reference oracleclient system.data system.data.oracleclient
netstandard2.0
我正在使用Windows 10 环境中的目标框架在 C# 中创建 Azure 函数。该函数调用另一个类库中的方法,并且该方法创建 SqlConnection 的实例。当我运行该函数时,出现以下异常:
Microsoft.Azure.WebJobs.Host.FunctionInitationException :执行函数时出现异常:Functions.RefreshImages ---> System.Reflection.TargetInitationException :调用目标已引发异常。---> System.PlatformNotSupportedException :此平台不支持 System.Data.SqlClient。在System.Data.SqlClient.SqlConnection..ctor(String connectionString)......
显然 Windows 支持 SqlConnection,所以我认为这里还发生了其他事情。
是否可以在C#中的DataTable上创建值范围约束?
我正在向DataTable动态添加一列:
this.PrimaryCorrelationMatrix.Columns.Add(sName, typeof(int));
Run Code Online (Sandbox Code Playgroud)
但是我希望这个列中的所有值都是[0,10]的整数.我可以直接在DataTable上实现这样的约束吗?
我能想到的下一个最佳选择是使用typeof(specialObj)创建一些具有可能值[0,10]的对象,而不是typeof(int).
只是想确保我没有遗漏一些东西.似乎没有WinRT System.Data.我正在寻找的是System.Data.SqlClient连接到SQL.Metro App可以连接到SQL吗?如果是,Metro应用程序可以以App Store兼容的方式连接到SQL.
我理解隐式回滚(通常在发生异常时发生并且调用Dispose)不能保证所有提供者.然而,许多示例使用:
using (DbTransactio txn = cnctn.BeginTransaction())
Run Code Online (Sandbox Code Playgroud)
这是有原因的吗?
using System;
using System.Data;
using System.Data.SqlClient;
...
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
名称空间'System'中不存在类型或命名空间名称'Data'(您是否缺少程序集引用?)
我正在使用Visual Studio 2013 Express for Windows Desktop
system.data ×10
c# ×7
.net ×3
datatable ×2
ado.net ×1
automapper ×1
constraints ×1
database ×1
decompiler ×1
oracleclient ×1
reference ×1
sql ×1
sql-server ×1
transactions ×1
using ×1