从.NET执行批量插入MS Access数据库的最佳方法是什么?使用ADO.NET,编写大型数据集需要花费一个多小时.
请注意,在我"重构"它之前,我的原始帖子在问题部分中都有问题和答案.我采取了Igor Turman的建议,并将其重新分为两部分 - 上面的问题,然后是我的答案.
我想创建一个类似于字典的对象,并认为正确的方法是实现IDictionary<K,V>
接口,并使用组合来包含底层字典.我从下面开始(K
= string
,V
= int
)
public class DictionaryLikeObject : IDictionary<string,int> {
Dictionary<string,int> _backingDictionary = new Dictionary<string,int>();
}
Run Code Online (Sandbox Code Playgroud)
然后我使用Visual Studio的"实现接口"功能来删除我需要的所有封面方法.
IDictionary
似乎不存在三种方法Dictionary
:
void Add(KeyValuePair<string, int> item);
void CopyTo(KeyValuePair<string, int>[] array, int arrayIndex);
bool Remove(KeyValuePair<string, int> item);
Run Code Online (Sandbox Code Playgroud)
然而,Microsoft文档清楚地表明了这些Dictionary
工具IDictionary
.所以我希望这三种方法可用.要从文档中复制,请定义Dictionary<K,V>
[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Dictionary<K, V> : IDictionary<K, V>,
ICollection<KeyValuePair<K, V>>, IEnumerable<KeyValuePair<K, V>>,
IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
Run Code Online (Sandbox Code Playgroud)
我相信这三种缺失的方法都可以在ICollection<>
.而且还有其他方法,比如Clear()
那个Dictionary
确实有.
问题1: 如果没有实现这三个,C#如何逃脱?为什么会这样?我怀疑这是一个编译错误(我的推理,见下文). 问题2: 或者,我错过了什么? …
我有许多反映数据库中表的类.我想有一个基类具有一些基本功能(比如,它将有一个"isDirty"标志),以及一个字符串的静态数组,其列名出现在数据库中.以下代码不起作用,但说明了我想要做的事情:
public class BaseRecord {
public bool isDirty;
public object [] itemArray;
public static string [] columnNames;
}
public class PeopleRec : BaseRecord {
}
public class OrderRec : BaseRecord {
}
public static void Main() {
PeopleRec.columnNames = new string[2];
PeopleRec.columnNames[0]="FIRST_NAME";
PeopleRec.columnNames[1]="LAST_NAME";
OrderRec.columnNames = new string[4];
OrderRec.columnNames[0] = "ORDER_ID";
OrderRec.columnNames[1] = "LINE";
OrderRec.columnNames[2] = "PART_NO";
OrderRec.columnNames[3] = "QTY";
}
public class DoWork<T> where T : BaseRecord {
public void DisplayColumnNames() {
foreach(string s in T.columnNames)
Console.Write("{0}", s);
}
public …
Run Code Online (Sandbox Code Playgroud) 我是Python的全新手.我想试着看看Pyomo(用于数学建模的Python包)是否可以在IronPython下工作,因为我生成Pyomo所需数据的所有代码都在C#中.
我安装了IronPython 2.7.5,然后作为管理员尝试了http://blog.ironpython.net/2014/12/pip-in-ironpython-275.html#disqus_thread中有关如何为IronPython运行"pip"的建议.我使用了他们给出的确切示例(安装html5lib):
ipy -X:Frames -m ensure pip
ipy -X:Frames -m pip install html5lib
Run Code Online (Sandbox Code Playgroud)
第一行工作,我在Lib/site-packages目录中看到一个文件夹,里面pip-6.1.1-py2.7.egg
有很多python代码.
对于第二行,我收到了错误:
Unhandled exception:
Traceback (most recent call last):
File "C:\Program Files (x86)\IronPython 2.7\Lib\runpy.py", line 170, in run_module
File "C:\Program Files (x86)\IronPython 2.7\Lib\runpy.py", line 111, in _get_module_details
ImportError: No module named urllib; 'pip' is a package and cannot be directly executed
Run Code Online (Sandbox Code Playgroud)
此时,我被困住了.任何帮助,将不胜感激.
为了防止这种情况有所帮助,打印出来sys.version
:
2.7.5 (IronPython 2.7.5 (2.7.5.0) on .NET 4.0.30319.34209 (32-bit))
Run Code Online (Sandbox Code Playgroud) c# ×3
bulkinsert ×1
dao ×1
dictionary ×1
idictionary ×1
inheritance ×1
ironpython ×1
ms-access ×1
pip ×1
static ×1