今天我遇到了使用OleDbConnection本网站上的Microsoft Excel文件读取数据的说明:OLE DB提供程序
这允许我读取Excel文件中的所有数据:
private const string EXCEL_CON =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" +
@"Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
public DataTable ExtractExcel(string fullFilename, string tableName)
{
var table = new DataTable();
string strCon = string.Format(EXCEL_CON, fullFilename);
using (var xlConn = new System.Data.OleDb.OleDbConnection(strCon))
{
ConnectionState initialState = xlConn.State;
try
{
if ((initialState & ConnectionState.Open) != ConnectionState.Open)
{
xlConn.Open();
}
string sql = string.Format("SELECT * FROM `{0}`;", tableName);
using (var cmd = new System.Data.OleDb.OleDbCommand(sql, xlConn))
{
table.Load(cmd.ExecuteReader());
}
}
finally
{ // it …Run Code Online (Sandbox Code Playgroud) 我有一个Visual Studio项目,可以安装到我们公司大约一半的PC上.
该应用程序有一个错误记录例程,它将错误消息附加到保存在此处的文本文件中:
static string _appPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Application.CompanyName);
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,这很好用,并允许我到个人电脑上的日志文件.
它无处不在.某些用户的帐户有限,无权写入该Environment.SpecialFolder.CommonApplicationData文件夹.
我可以在这里修改存储的路径:
static string _newPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Application.CompanyName);
Run Code Online (Sandbox Code Playgroud)
但是,当我需要收集日志文件时,我必须深入了解每台PC上的每个用户帐户文件夹以获取日志.
我想要做的是将这些消息存储在我们的内部网络上.这个问题是如何处理多个写实例.
static string _netPath = Path.Combine(@"\\FileServer1", Application.CompanyName);
Run Code Online (Sandbox Code Playgroud)
我想使用Messaging,但我不知道该怎么做 - 或者它是否是一个很好的解决方案.管理层希望我在本周五(今天是星期三)推出此更新.
_netPath用于存储来自我们网络中的大约100台PC的日志文件的最简单,最可靠的方法是什么?
注意:如果您引用MSDN,请粘贴文章.我们有一个旧的Microsoft ISA防火墙,无法通过MSDN网站.(ISA服务器每次都会超时,而且它是如此令人费解!请参阅ISA代理服务器无法...对于我未解决的问题.)
我试图围绕这个名为LINQ的"新概念".听说过吗?大声笑
无论如何,我已经阅读了足够的知道这可以使用LINQ写得更清楚,但我不明白我是怎么写的:
DataTable table = MySqlDateTimeQueryResult();
for (int i = 0; i < table.Rows.Count; i++) {
DataRow r = table.Rows[i];
DateTime dt = (DateTime)r["Date_Time"];
Console.WriteLine(dt);
}
Run Code Online (Sandbox Code Playgroud)
编辑[标题更改]:如何使用LINQ编写?
显然,这不是一个查询.
我有一个需要过滤的员工列表,我想看看如何使用lambda和/或LINQ表达式来完成此操作.
我想返回列表中的所有Employees,但我希望它们按Shift,Lastname和Firstname的顺序返回.
List<Employee> empList = GetEmployeesInOtherCode();
// ...
int MAX_SHIFT = 5;
List<string> sortedNames = new List<string>(empList.Count);
for (int i = 0; i < MAX_SHIFT; i++) {
List<string> localShift = new List<string>();
for (int j = 0; j < empList.Count; j++) {
Employee e = empList[j];
if (e.Shift == i) {
localShift.Add(string.Format("{0}, {1}", e.Lastname, e.Firstname));
}
}
localShift.Sort();
sortedNames.AddRange(localShift.ToArray());
}
foreach (string line in sortedNames) {
Console.WriteLine(line);
}
Run Code Online (Sandbox Code Playgroud)
编辑: Jeez,你们快!你用什么来产生这些东西?您是否正在编写它,或者是否有帮助的工具?
这是关于泛型的两(2)部分问题
我必须创建几个类似的类来为类似设计的数据库表建模.
所有表都包含一个ID int和一个Text nvarchar(50)字段.一个或两个可能包含一些其他字段.
我很少使用泛型,但我经常在这里看到它的例子.这是我创建另一个泛型类中使用的泛型类的最大尝试.
我的基本结构如下,我将用注释指出什么不起作用以及Visual Studio 2010显示的错误消息:
public class IdText {
public IdText(int id, string text) {
ID = id;
Text = text;
}
public int ID { get; private set; }
public string Text { get; private set; }
}
public class TCollection<T> : IEnumerable<T> where T : IdText {
private List<T> list;
public TCollection() {
list = new List<T>();
}
public void Add(int id, string text) { …Run Code Online (Sandbox Code Playgroud) 我通常不使用Cookie,但我想查看这个通常使用的Session变量.
如果我设置了Cookie,那么请立即尝试从中读取,我没有得到我刚刚设置的值.
但是,如果我刷新页面或关闭浏览器并将其重新打开,则Cookie似乎已设置.
我正在Chrome中调试它.那会有什么不同吗?
public const string COOKIE = "CompanyCookie1";
private const int TIMEOUT = 10;
private string Cookie1 {
get {
HttpCookie cookie = Request.Cookies[COOKIE];
if (cookie != null) {
TimeSpan span = (cookie.Expires - DateTime.Now);
if (span.Minutes < TIMEOUT) {
string value = cookie.Value;
if (!String.IsNullOrEmpty(value)) {
string[] split = value.Split('=');
return split[split.Length - 1];
}
return cookie.Value;
}
}
return null;
}
set {
HttpCookie cookie = new HttpCookie(COOKIE);
cookie[COOKIE] = value;
int minutes = String.IsNullOrEmpty(value) ? …Run Code Online (Sandbox Code Playgroud) 我正在尝试将TreeView控件绑定到LAN上的机器ASUS-PC的公共文件夹.

但是,我无法弄清楚如何解析"ASUS-PC"目录,因为我无法从路径创建DirectoryInfo对象"\\\\ASUS-PC".
DirectoryInfo dir = new DirectoryInfo("\\\\ASUS-PC");
Run Code Online (Sandbox Code Playgroud)
上面的行抛出带有消息的ArgumentExceptionThe UNC path should be of the form \\server\share.
下面的代码只为root创建一个哑节点,因此我无法在该PC上显示所有公共文件夹.
如何提取路径"\\ ASUS-PC"的目录列表?
public void BindDirectoryToTreeView(string directoryPathToBind) {
if (!String.IsNullOrEmpty(directoryPathToBind) && Directory.Exists(directoryPathToBind)) {
treeView1.Nodes.Clear();
TreeNode rootNode = null;
char[] ps = treeView1.PathSeparator.ToCharArray();
string[] split = directoryPathToBind.Split(ps);
var folders = split.Where(str => !String.IsNullOrEmpty(str));
for (int i = 0; i < folders.Count(); i++) {
var folder = folders.ElementAt(i);
int index = directoryPathToBind.IndexOf(folder);
int length = index …Run Code Online (Sandbox Code Playgroud) 我看到很多类似的问题用胡言乱语写成,我不明白:
我想知道如何使用微软的技术做到这一点......或者只是向我解释其他人在谈论什么以及如何使用它们.
基本上,如果有人在地址栏中输入"mydomain.com",我希望它在页面加载完毕后解析为"www.mydomain.com".
编辑:这是一个托管网站,所以我无法配置IIS服务器.
如何在MySQL 5.5存储过程中SQLEXCEPTION出现错误文本?
我需要沿着这些方向看看出了什么问题:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
SELECT "Table @p5 (Msg State @p2): @p1"
END;
Run Code Online (Sandbox Code Playgroud)
类似于在MySQL程序中获取SQLEXCEPTION消息,但版本是5.6.4 - 因此GET DIAGNOSTICS可用.
我们有一台新服务器,我正在尝试为我们的网站设置它。
我在成立了工程师新的应用程序应用程序池叫eng_app,然后加入我们的应用到它。
现在,我们获得了这些应用程序需要打开的外部驱动器,但我似乎无法编辑或删除现有应用程序。
我尝试遵循Microsoft Technet 文章 • 删除应用程序 (IIS 7),但正如您在屏幕截图中看到的那样,这些是不正确的。
C:\Windows\System32\inetsrv>appcmd 删除应用程序“eng_app/drawing”
错误(消息:找不到标识符为“eng_app/drawing”的 APP 对象。)C:\Windows\System32\inetsrv>appcmd delete app "/eng_app/drawing"
ERROR(消息:必须用标识符或“APP.NAME”参数指定APP对象。)
