如何与价值观一起工作

本文关键字:一起 工作 价值观 | 更新日期: 2023-09-27 18:12:40

我的概念是,例如here[COU] =45,然后进度条加载该计数,并希望显示成功完成。但我没有得到的进展与计数同时工作在这里,也不显示消息,请帮助我做,我的代码如下

public void proget()
{          
    System.Data.DataRowView selectedFile = 
                            (System.Data.DataRowView)dataGrid1.SelectedItems[i];
    string iid = Convert.ToString(selectedFile.Row.ItemArray[10]);
    SqlConnection con = new SqlConnection("Data Source=TNT3FMR''SQLEXPRESS;Initial Catalog=xxx;Integrated Security=True");
    string query = "SELECT [COU] FROM _Count_Series WHERE STUID='"+iid+"'";
    SqlCommand cmd = new SqlCommand(query, con);
    con.Open();                
    SqlDataReader rdr = cmd.ExecuteReader();
    while (rdr.Read())
    {
        progressBar1.Value++;
    }
    MessageBox.Show("Completed Successfully");
}

如何与价值观一起工作

我不确定你的设计是否正确。最佳实践表明,在已连接的场景中,应该尽快关闭db连接。这意味着首先读取数据,并在处理数据之前丢弃读取器。你的所作所为对我来说有点奇怪。

我在代码中注意到的一个问题是,您通过连接字符串动态构建查询。这使您容易受到SQL注入攻击。您应该使用参数化查询。

另一个问题是你没有使用'using模式'。如果在连接时出现错误,会发生什么?如何释放连接资源?

从我个人的经验,当我访问数据库时,我以异步的方式做,并设置progressBar为不确定的状态,因为我不知道读取数据需要多少。您的代码是同步的。这可能是你的UI不能正确更新的部分原因。

希望能有所帮助