gpt4 book ai didi

c# - 将值从 SQL 返回到 WPF 表单 - 我做得正确吗?

转载 作者:行者123 更新时间:2023-12-02 08:37:27 26 4
gpt4 key购买 nike

我正在创建一个表单,其中包含来自同一个表的多个计算(在本例中)。该代码工作正常,但我可以通过一些指导来确保我高效地做事:

加载表单时,我只想用计数填充两个文本 block 。我知道我需要进行一些错误检查,但除此之外 - 这是一个好方法吗?

private void Window_Loaded(object sender, RoutedEventArgs e)
{
int intCount = ReturnNumber("SELECT COUNT(ActivityID) FROM tblActivity WHERE [Activity_Category] = 'Productivity'");
TxtBlockProductivityPerc.Text = intCount.ToString();

intCount = ReturnNumber("SELECT COUNT(ActivityID) FROM tblActivity WHERE [Activity_Category] = 'Revenue'");
TxtBlockRevenuePerc.Text = intCount.ToString();
}

public int ReturnNumber(string StrQuery)
{
string cs = ClsVariables.StrDb;
string cmdText = StrQuery;
using (SQLiteConnection con = new SQLiteConnection(cs))
using (SQLiteCommand cmd = new SQLiteCommand(cmdText, con))
{
con.Open();
int count = Convert.ToInt32(cmd.ExecuteScalar());
con.close();
return count;
}
}

最佳答案

基本上,如果您不是以 MVVM 风格开发应用程序,那么这种方法还不错,但这只是我的观点。这是我的一些评论:

  • 在这种情况下,我认为最好使用事件 Window.ContentRendered ,因为 Loaded 加载时触发事件Window作为 Control,渲染 Window 的内容时触发 ContentRendered 事件。但它们之间没有很大的区别 link .

  • 您必须单独存储查询字符串,因为每次我们需要更改它们时,您都必须爬入您的函数,这很不方便。

  • 添加到使用 SQL Server 前缀 FromSQL 的函数,在你的情况下将是这样的:ReturnNumberFromSQL() .

  • 您不需要临时变量,您可以调用该函数并立即从中获取结果。

我的伪示例:

private void Window_ContentRendered(object sender, EventArgs e)
{
string Test1Sql = "Test1 SQL query"; // stored separately
string Test2Sql = "Test2 SQL query"; // stored separately

MyTextBlock1.Text = ReturnNumberFromSQL(Test1Sql).ToString();
MyTextBlock2.Text = ReturnNumberFromSQL(Test2Sql).ToString();
}

public int ReturnNumberFromSQL(string StrQuery)
{
return 777;
}

并考虑必须在适当的类中单独存储不能与 GUI 一起使用的过程的代价。

关于c# - 将值从 SQL 返回到 WPF 表单 - 我做得正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com