大家好,我有这种格式的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) 我正在填充一个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吗?我知道这可能是对我这样做的最小性能影响,但我想知道更大的枚举.
我有一个数据库存储带有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 "™";
Run Code Online (Sandbox Code Playgroud)
请指导我通过Unicode转义字符串以获得HTML友好的最佳方法.我曾经为JavaScript做过类似的事情,但是JavaScript有一个用于escape和unescape的内置函数.
但是我不知道任何类似功能的PHP函数.我已经阅读了关于ord函数的内容,但它只返回给定字符的ASCII字符代码,因此显示不正确的™或者™.我希望这个函数足够通用,可以应用于任何包含有效Unicode字符的字符串.
我对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)
我已经读过该平台的服务器版本不支持听写,但它似乎很奇怪,它将附带一个不起作用的方法.有没有人设法获得在服务器上工作的听写语法?我究竟做错了什么?
非常感谢
如果顶级项目中没有子节点,我正在尝试删除顶级树窗口小部件项目.这样做的正确方法是什么?我似乎无法在Qt的文档中找到API调用.在顶级树窗口小部件项目上调用delete是否安全?我还没有遇到任何问题,但我想知道这是否安全.非常感谢.
if(topLevelTreeWidgetItem->childCount() > 1) {
topLevelTreeWidgetItem->removeChild(childItem);
}
else
{
delete topLevelTreeWidgetItem;
}
Run Code Online (Sandbox Code Playgroud) 我想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中的控制字符,其中c是控制字符的任何有效字符.我有这个正则表达式,但它目前不工作:\\[^][@-z]
我认为问题在于插入符号(^)是正则表达式解析引擎的一部分.
我正在使用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) 我正在使用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)
有没有办法将整个结果集捕获到内存中并在内存中循环它?我宁愿让应用程序花费这么长时间来遍历结果集.
我有一个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)