小编Emo*_*que的帖子

如何在执行异步任务时保持按钮启用

在我的xaml我有一个按钮和一个TextBlock

<TextBlock Text="{Binding AText}" FontSize="20"/>
<Button Content="Click" Command="{Binding MyCommand}" Grid.Row="1"/>
Run Code Online (Sandbox Code Playgroud)

在我的ViewModel中,我有以下代码

let aText = self.Factory.Backing(<@ self.AText @>, "Initial Text")
let asyncTask x = async {
    self.AText <- "Loading"
    do! Async.Sleep(5000)
    self.AText <- "Loaded"
} 

member self.AText with get() = aText.Value and set(v) = aText.Value <- v    
member self.MyCommand = self.Factory.CommandAsyncChecked(asyncTask, fun _ -> true)
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,它会被禁用并保持不变,直到它完成asyncTask.我认为设置canExecutetrue将改变行为,但事实并非如此!

如何控制按钮的行为?

f# fsxaml fsharp.viewmodule

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

如何在Qt中更快地读取数据?

Qt读取数据库的速度是否比C#慢?我想我错过了什么!为了比较我在Qt中写下的阅读速度

QElapsedTimer t;
t.start();
int count = 0;
QString cs = "Driver={SQL Server}; Server=EMON;Database=FAODB;User=Test;Password=Test";
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC",cs);
db.setDatabaseName(cs);
db.open();
QSqlQuery query(db);
query.setForwardOnly(true);
query.exec("SELECT * FROM FAOCropsLivestock");
while(query.next()){
    if(query.value("Country").toString() == "\"Bangladesh\"")
        count++;
}
db.close();
qDebug()<< QString::number(count) + " elapsed ms " + QString::number(t.elapsed());
Run Code Online (Sandbox Code Playgroud)

并在C#

Stopwatch s = new Stopwatch();
s.Start();
int count = 0;
string cs = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
string query = "SELECT * FROM FAOCropsLivestock";
using(SqlConnection con = new SqlConnection(cs)){
      using(SqlCommand cmd = new SqlCommand(query, con)){
            con.Open();
            SqlDataReader rd = …
Run Code Online (Sandbox Code Playgroud)

c# qt

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

如何在Qt和查询数据库中使用ADODB.Connection?

我在上一篇文章中所示, QODBC/QODBC3对数据库的处理并不好.我在这里找到了一个使用ADODB for SQL Server的建议.任何人都可以举例说明或建议一个链接解释如何使用Qt中的ADODB.Connection连接,查询和获取结果?

sql-server qt

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

这里如何增加`k`?

我试图k像这样在for循环中增加:

t = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

for k = 1, #t do
    if k == 1 then 
        print(t[1])
    else
        print(t[k], t[k + 1], t[k + 2])
        k = k + 2
    end 
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用!如何kelse块中增加?

lua

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

CsvProvider抛出OutOfMemoryException

FAOCropsLivestock.csv包含超过1400万行.在我的.fs档案中,我宣布了

type FAO = CsvProvider<"c:\FAOCropsLivestock.csv">
Run Code Online (Sandbox Code Playgroud)

并尝试使用以下代码

FAO.GetSample().Rows.Where(fun x -> x.Country = country) |> ....
FAO.GetSample().Filter(fun x -> x.Country = country) |> ....
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,都exception被扔了.

csv在MSSQL Server中加载文件后,我也试过了下面的代码

type Schema = SqlDataConnection<conStr>
let db = Schema.GetDataContext()
db.FAOCropsLivestock.Where(fun x-> x.Country = country) |> ....
Run Code Online (Sandbox Code Playgroud)

有用.如果我query使用OleDb连接发出它也有效,但它很慢.

如何使用它来获取顺序CsvProvider

f# f#-data

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

标签 统计

f# ×2

qt ×2

c# ×1

f#-data ×1

fsharp.viewmodule ×1

fsxaml ×1

lua ×1

sql-server ×1