小编Cam*_*ker的帖子

如何在不将其保存到服务器的情况下读取上载的CSV文件?

大家好,我有这种格式的CSV文件:

**CSV Format1**

  ||OrderGUID||OrderItemID||Qty||SKUID||TrackingNumber||TotalWeight||DateShipped||DateDelivered||ShippingStatusId||OrderShippingAddressId
  ||5        ||3          ||2  ||12312||aasdasd       ||24         ||2012-12-2010||            || 10025          ||10028
  ||5        ||4          ||3  ||113123||adadasdasd   ||22         ||2012-12-2012||            ||10026           ||10028



**CSV Format2**

    ||"OrderGUID"||"OrderItemID"||"Qty"||"SKUID"||"TrackingNumber"||"TotalWeight"||"DateShipped"||"DateDelivered"||"ShippingStatusId"||"OrderShippingAddressId"||
    ||"5"        ||"3"          ||"2"  ||"12312"||"aasdasd"       ||"24"         ||"2012-12-2010"||""            || "10025"          ||"10028"||
    ||"5"        ||"4"          ||"3"  ||"113123"||"adadasdasd"   ||"22"         ||"2012-12-2012"|| "2012-12-2010" ||"10026"           ||"10028"||
Run Code Online (Sandbox Code Playgroud)

我必须阅读这些文件而不将它们保存在服务器上.谁能帮我?如何读取此文件并插入我的数据库?如何修剪文件中的特殊字符?

这就是我要为文件上传做的事情:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ImportTrackingNumber(FormCollection form,HttpPostedFileBase UploadedFile,TrackingNumbersModel Trackingnumbers)
{
    if (UploadedFile != null)
    {
        var allowedExtensions = new[] {".xlsx", ".csv"};
        if (UploadedFile.ContentLength > 0)
        {                   
            var extension = Path.GetExtension(UploadedFile.FileName);
            if (extension == ".xlsx")
            {
                //Need To code …
Run Code Online (Sandbox Code Playgroud)

c# csv

18
推荐指数
1
解决办法
2万
查看次数

OrderBy on Enum.GetValues()

我正在填充一个DropDownListMVC 4 enum,我想从最大到最小的顺序排列枚举值.但是,似乎没有直接的方法来解决这个问题.目前,我正在使用此代码添加到字典中,其中键是ID,值是显示文本:

var priorities = Enum.GetValues(typeof(Models.Priority)).OfType<Models.Priority>().ToList();

for (int i = priorities.Count - 1; i >= 0; i--)
{
    Models.Priority priority = priorities[i];
    prioritiesDictionary.Add((int)priority, "Priority " + ((int)priority).ToString());
}
Run Code Online (Sandbox Code Playgroud)

我不相信将枚举值放入列表并向后循环是最有效的方法.枚举中只有四个值,但是有更好的方法对OrderBy返回的内容执行操作Enum.GetValues吗?我知道这可能是对我这样做的最小性能影响,但我想知道更大的枚举.

c# linq enums

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

打印Unicode字符PHP

我有一个数据库存储带有Unicode字符的视频游戏名称但我无法弄清楚如何在将这些Unicode字符打印到HTML响应时正确地转义它们.

例如,当我打印所有名为Uncharted的游戏时,我得到了这个:

Uncharted: Drake's Fortuneâ„¢
Uncharted 2: Among Thievesâ„¢
Uncharted 3: Drake's Deceptionâ„¢
Run Code Online (Sandbox Code Playgroud)

但它应该显示这个:

Uncharted: Drake's Fortune™
Uncharted 2: Among Thieves™
Uncharted 3: Drake's Deception™
Run Code Online (Sandbox Code Playgroud)

我运行了一个快速的JavaScript转义函数来查看它是哪个Unicode字符并发现它\u2122.

如果我可以正确显示字符,我没有完全转义字符串中每个字符的问题.我的猜测是以某种方式找到字符串中每个字符的十六进制表示,并让PHP呈现Unicode字符,如下所示:

print "&#x2122";
Run Code Online (Sandbox Code Playgroud)

请指导我通过Unicode转义字符串以获得HTML友好的最佳方法.我曾经为JavaScript做过类似的事情,但是JavaScript有一个用于escape和unescape的内置函数.

但是我不知道任何类似功能的PHP函数.我已经阅读了关于ord函数的内容,但它只返回给定字符的ASCII字符代码,因此显示不正确的&#x2122;或者&trade;.我希望这个函数足够通用,可以应用于任何包含有效Unicode字符的字符串.

php unicode html-escape-characters

10
推荐指数
4
解决办法
3万
查看次数

在Microsoft Speech Platform 11(服务器)上附加注释?

我对C#和Microsoft Speech平台都比较陌生,但我正在研究一个需要转录免费听写的服务器应用程序.MS Speech Platform SDK看起来很完美,并且可以在服务器上运行,除非我在GrammarBuilder中引用了AppendDictation()方法.

我正在使用Microsoft Speech Platform SDK 11,如果我定义语法,应用程序工作正常,但是当我在AppendDictation()中添加时,我遇到了这个错误:

Cannot find grammar referenced by this grammar.
Run Code Online (Sandbox Code Playgroud)

即使文档中的这个示例似乎也失败了:

GrammarBuilder startStop = new GrammarBuilder();
GrammarBuilder dictation = new GrammarBuilder();
dictation.AppendDictation();

startStop.Append(new SemanticResultKey("StartDictation", new SemanticResultValue("Start Dictation",true)));
startStop.Append(new SemanticResultKey("DictationInput", dictation));
startStop.Append(new SemanticResultKey("StopDictation", new SemanticResultValue("Stop Dictation", false)));
Grammar grammar=new Grammar(startStop);
grammar.Enabled=true;
grammar.Name=" Free-Text Dictation ";
_recognizer.LoadGrammar(grammar);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我将LoadGrammar更改为LoadGrammarAsync,语法加载(或至少调用事件处理程序),但是recoginzer失败并出现此错误:

Error: At least one grammar must be loaded before doing a recognition.
Run Code Online (Sandbox Code Playgroud)

我已经读过该平台的服务器版本不支持听写,但它似乎很奇怪,它将附带一个不起作用的方法.有没有人设法获得在服务器上工作的听写语法?我究竟做错了什么?

非常感谢

c# speech-recognition sapi speech-to-text

9
推荐指数
1
解决办法
3652
查看次数

如何从QTreeWidget中删除顶级QTreeWidgetItem?

如果顶级项目中没有子节点,我正在尝试删除顶级树窗口小部件项目.这样做的正确方法是什么?我似乎无法在Qt的文档中找到API调用.在顶级树窗口小部件项目上调用delete是否安全?我还没有遇到任何问题,但我想知道这是否安全.非常感谢.

if(topLevelTreeWidgetItem->childCount() > 1) {
  topLevelTreeWidgetItem->removeChild(childItem);
}
else
{
  delete topLevelTreeWidgetItem;
}
Run Code Online (Sandbox Code Playgroud)

c++ qt qtreewidget qtreewidgetitem

7
推荐指数
2
解决办法
1万
查看次数

SignalR - 用于检测客户端是否与集线器断开连接的服务器端方法?

我想System.Timers.Timer在客户端关闭包含活动连接的窗口/选项卡后停止在SignalR集线器中运行的.

我已经尝试通过调用服务器代码向服务器发送bool值来通知服务器客户端是否仍然连接,但它当前不工作.

window.onbeforeunload = function () {
    profile.server.setIsConnected(false);
};
Run Code Online (Sandbox Code Playgroud)

服务器端:

public ProfileHub()
{  
    timer = new Timer(15000);
    timer.Elapsed += (sender, e) => { timer_Elapsed(sender, e, _isActive); };
    timer.AutoReset = false;
}

[Authorize]
private void timer_Elapsed(object sender, ElapsedEventArgs e, bool active)
{            
    timer.Stop();

    if (active)
    {
        System.Diagnostics.Debug.WriteLine("Timer Started");
        timer.Start();
    }
    else
    {
        System.Diagnostics.Debug.WriteLine("Timer Stopped");
        return;
    }
    // process code
}

[Authorize]
public void SetIsActive(bool isActive)
{
    _isActive = isActive;
}
Run Code Online (Sandbox Code Playgroud)

这是可能的,我是否走在正确的轨道上?我怀疑它与匿名代表有关timer.Elapsed,但我不完全确定.

c# signalr asp.net-mvc-5 system.timers.timer

7
推荐指数
1
解决办法
9676
查看次数

控制字符的正则表达式是什么?

我正在尝试匹配形式\ ^ c中的控制字符,其中c是控制字符的任何有效字符.我有这个正则表达式,但它目前不工作:\\[^][@-z]

我认为问题在于插入符号(^)是正则表达式解析引擎的一部分.

java regex ascii lexical-analysis

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

系统托盘应用Linux Qt/C++

我正在使用Qt用C++编写一个应用程序,该应用程序利用系统托盘

我已经使用示例中所示的类实现了系统托盘,但它的行为与我的计算机上存在的其他系统托盘图标QSystemTrayIcon不同。

例如,我在 Ubuntu 12.04 上安装了 Spotify,它显示了一个带有下拉菜单的系统托盘图标。在我的应用程序中,它显示一个带有上下文菜单的系统托盘图标,这意味着您必须右键单击它才能激活菜单。

使用 Spotify,只需单击图标即可显示菜单。

如何在 Ubuntu 中获取本机系统托盘图标?

我很喜欢使用特定的代码X11/Linux而不是内置的 Qt 函数。

这是我的代码:

void MainWindow::closeEvent(QCloseEvent *event)
{
    if (trayIcon->isVisible()) {
        hide();
        event->ignore();
    }
}

void MainWindow::createActions()
{
    restoreAction = new QAction(tr("&Show"), this);
    connect(restoreAction, SIGNAL(triggered()), this, SLOT(show()));

    quitAction = new QAction(tr("&Exit"), this);
    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
}

void MainWindow::createTrayIcon()
{
    trayIconMenu = new QMenu(this);
    accountsMenu = trayIconMenu->addMenu(tr("Accounts"));
    trayIconMenu->addSeparator(); …
Run Code Online (Sandbox Code Playgroud)

c++ linux qt trayicon system-tray

5
推荐指数
2
解决办法
7230
查看次数

迭代QSqlQuery结果集的最有效方法是什么?

我正在使用QODBC查询远程MSSQL Server数据库,并且我返回了一个结果集,但似乎它逐个向每个记录发送一个查询到SQL Server.迭代结果集非常慢.从Qt运行查询,大约需要15秒才能完成.我在SQL Server Management Studio中运行相同的查询,返回结果需要1秒.这是我正在使用的代码:

QString connectionTemplate = "DRIVER={SQL SERVER};SERVER=server;DATABASE=db;";
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC3", "db");
db.setDatabaseName(connectionTemplate);
db.setUserName("user");
db.setPassword("password");

if (db.open()) {
    qDebug() << "OK!";
    QSqlQuery * query = new QSqlQuery(db);
    query->exec("SELECT [UserName]"
                "  FROM [dbo].[Users]");


    while(query->next())
    {
        QString userName = query->value(0).toString();
        qDebug() << userName;
    }

    db.close();
}
else {
    qDebug() << db.lastError().text();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将整个结果集捕获到内存中并在内存中循环它?我宁愿让应用程序花费这么长时间来遍历结果集.

c++ sql-server qt odbc qtsql

4
推荐指数
1
解决办法
9094
查看次数

将空参数发送到Sql Server

我有一个SqlCommand对象,我用来更新数据库表,但它没有正确解释我的空值.

这是SQL:

UPDATE dbo.tbl 
SET param1 = @param1, 
param2 = @param2,
param3 = @param3,
param4 = @param4, 
param5 = @param5, 
param6 = @param6, 
param7 = @param7, 
param8 = @param8, 
param9 = @param9, 
param10 = @param10 
WHERE param11 = @param11
Run Code Online (Sandbox Code Playgroud)

我尝试过像这样可以为空的空合并参数,但我没有取得任何成功.除非另有说明,否则所有参数均为字符串

command.Parameters.AddWithValue("@param1", param1 ?? DBNull.Value);
command.Parameters.AddWithValue("@param2", param2 ?? DBNull.Value);
command.Parameters.AddWithValue("@param3", param3 ?? DBNull.Value);
command.Parameters.AddWithValue("@param4", param4 ?? DBNull.Value);
command.Parameters.AddWithValue("@param5", param5 ?? DBNull.Value);
// param6 is nullable type DateTime?
command.Parameters.AddWithValue("@param6", param6 ?? DBNull.Value); 
command.Parameters.AddWithValue("@param7", param7 ?? DBNull.Value);
// param8 is nullable …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server null-coalescing-operator null-coalescing

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