Tôi muốn thông báo cho người dùng khi dữ liệu đang được đọc từ cơ sở dữ liệu SQL và tôi quyết định tạo biểu mẫu bằng thanh tiến trình nhưng nó không hoạt động - có thể do một chuỗi là cần thiết . Tôi muốn tạo biểu mẫu theo chương trìnhHiển thị thanh tiến trình trong khi thực thi Truy vấn SQL
ProgressBar pb = new ProgressBar();
pb.MarqueeAnimationSpeed = 30;
pb.Style = ProgressBarStyle.Marquee;
pb.Dock = DockStyle.Fill;
progressForm.ClientSize = new Size(200, 50);
progressForm.FormBorderStyle = FormBorderStyle.FixedDialog;
progressForm.StartPosition = FormStartPosition.CenterScreen;
progressForm.Controls.Add(pb);
progressForm.ControlBox = false;
progressForm.TopMost = true;
progressForm.Show();
//do data processes here (all queries and executes)
progressForm.close();
Làm cách nào để sửa đổi mã ở trên để đạt được mục tiêu đã nêu?
chỉnh sửa: Btw, tôi muốn sử dụng biểu mẫu thanh tiến trình này trong mọi chức năng dữ liệu trong dự án của mình. Ví dụ: fillGrid, runQuery ..
@ Sẽ cảm ơn bạn rất nhiều vì câu trả lời của bạn. Tôi có nghĩa là làm thế nào tôi có thể sử dụng một chức năng của lớp ví dụ chức năng gridFill của tôi là ở chỗ lớp kết nối:
class ConnectionClass
{
public static SqlConnection connection = new SqlConnection();
public string sorgu;
public static string server;
public static string userId;
public static string catalog;
public static string password;
public static string accessMethod;
public DataSet ds = new DataSet();
Form progressForm = new Form();
public bool Open()
{
try
{
if (connection.State != ConnectionState.Open)
{
connection.ConnectionString = "Data Source = " + server + ";" +
"Initial Catalog=" + catalog + ";" +
"User ID=" + userId + ";" +
"Password=" + password + ";" +
"Connect Timeout=0";
connection.Open();
return true;
}
else
{
return true;
}
}
catch (Exception ex)
{
MessageBox.Show("System message:" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
public DataTable Dt(string query)
{
DataTable dt = new DataTable();
if (Open())
{
SqlDataAdapter da = new SqlDataAdapter(query, connection);
try
{
//progressForm.Showdialog() is this possible???
da.Fill(dt);
//progressForm.close(); ??
}
catch (Exception ex)
{
MessageBox.Show("Sistem Mesajı:" + ex.Message, "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
return dt;
}
public bool Run(string query, string hataMsj)
{
Form activeForm = Form.ActiveForm;
query = " SET DATEFORMAT DMY " + query;
SqlCommand sc = new SqlCommand(query, connection);
try
{
Open();
sc.ExecuteNonQuery();
return true;
}
catch (Exception)
{
return false;
}
}
public void fillComboBox(string sorgu, ComboBox cb, string text, string value)
{
DataTable dt = Dt(sorgu);
cb.DisplayMember = text;
cb.ValueMember = value;
cb.DataSource = dt;
if (cb.Items.Count > 0)
{
cb.SelectedIndex = 0;
}
}
public int fillGridView(string sorgu, DataGridView dgv)
{
DataTable dtGrvw = Dt(sorgu);
dgv.DataSource = dtGrvw;
return 1;
}
}
và ví dụ truy vấn từ một hình thức khác (class)
ConnectionClass cc = new ConnectionClass();
query= " INSERT INTO tblPersonel (" +
" [sqlUserName] " +
",[personelNo] " +
",[ad] " +
",[soyad] " +
",[departmanId] " +
",[emailadres] " +
",[tcKimlikNo],[kangurubu],[dokumaciNo])VALUES" +
"('" + tbSqlUserName.Text +
"','" + tbPersonelNo.Text +
"','" + tbAd.Text +
"','" + tbSoyad.Text +
"','" + cbDepartman.SelectedValue.ToString() +
"','" + tbMail.Text +
"','" + tbKimlikno.Text +
"','" + tbKangrubu.Text +
"','" + tbDokumaciNo.Text + "') ";
if (cc.Run(query, "Unexpected error on insert new person"))
{
fillGrid();
this.Close();
}
public void fillGrid()
{
query= " select * from View_Personel order by personelNo desc";
cc.fillGridView(query, gridviewPersonel);
}
và tôi không thể tưởng tượng như thế nào có thể Tôi sử dụng nó trong sự kiện bw_DoWork. bởi vì chức năng của tôi có các tham số (truy vấn, GridView) khi tôi gọi nó từ một lớp khác, tôi có thể sử dụng nó với các tham số ...
p.s. : this Method là khá tốt đối với tôi nhưng nó không hoạt động. Tôi không hiểu vấn đề
Nhìn vào lớp nhân viên nền. http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx –