小编Mar*_*ton的帖子

在.NET/C#中将大量记录(批量插入)写入Access

从.NET执行批量插入MS Access数据库的最佳方法是什么?使用ADO.NET,编写大型数据集需要花费一个多小时.

请注意,在我"重构"它之前,我的原始帖子在问题部分中都有问题和答案.我采取了Igor Turman的建议,并将其重新分为两部分 - 上面的问题,然后是我的答案.

c# ms-access dao bulkinsert

48
推荐指数
2
解决办法
4万
查看次数

为什么C#Dictionary没有实现所有的IDictionary?

我想创建一个类似于字典的对象,并认为正确的方法是实现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: 或者,我错过了什么? …

c# dictionary idictionary

26
推荐指数
1
解决办法
5928
查看次数

C#中的静态成员继承

我有许多反映数据库中表的类.我想有一个基类具有一些基本功能(比如,它将有一个"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)

c# inheritance static

6
推荐指数
1
解决办法
3267
查看次数

为什么IronPython告诉我pip是一个包而不是一个可执行文件?

我是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)

ironpython pip

5
推荐指数
1
解决办法
3388
查看次数