返回首页

喜的先生或女士,

我乌代Satardekar。

我新升C编程。

我大约10000到15000行使用XML从Excel中插入大量数据。我使用C锐利的WinForm月底和SQL Server 2005为后端。它采用倍以上,30秒至5分钟后,行。

现在我有进度显示在此期间,以显示应用程序正忙。

请给予解决方案。

我已经写在我的保存按钮点击下面的代码。

  try

            {

 

                MyConnect myCnn = new MyConnect();

                String connString = myCnn.getConnect().ToString();    //call from class



                SqlDataAdapter adapter;

                SqlTransaction transaction;

                DataSet ds1 = new DataSet();

                SqlConnection conn;

                conn = new SqlConnection(connString);

                conn.Open();

 

                transaction = conn.BeginTransaction();

                SqlCommand command = new SqlCommand();

                command.Transaction = transaction;

 

                string path = txtUploadFlNm.Text;

 

                string[] readText = File.ReadAllLines(path);

 

                if (readText[0] == "email")

                {

 

                    List<string> badEmail = new List<string>();

                    List<string> goodEmail = new List<string>();

 

                    for (int i = 1; i < readText.Length; i++)

                    {

                        if (validEmail(readText[i]))  // check valid

                        {

                            goodEmail.Add(readText[i]);

                        }

                        else

                        {

                            badEmail.Add(readText[i]);

                        }

                    }

                                      

 

                    StringBuilder XML_TRANSACTIONDETAILS = new StringBuilder();

 

                    string guid = Guid.NewGuid().ToString().Replace("-", "");

                    string dataID;

                    string today = DateTime.Now.ToLongTimeString();

                    int m = 1;</string></string></string></string>
/ /此行后,我想开始我的进步吧

{C}
我怎样才能做到这一点?
谢谢。

回答

评论会员:游客 时间:2012/02/05
约翰・西蒙斯/取缔程序员
0)数据库的代码放入一个线程(一个BackgroundWorker对象将是合适的)

1)将窗体上的一个ProgressBar。

2)在您的表单处理BackgroundWorker的进展事件,并更新进度条。

3)谷歌是你的朋友
评论会员:米卡Wendelius 时间:2012/02/05
也许simpliest方式,可以使用

你可以放置在DoWork长时间运行的操作和使用ProgressChanged事件告知事情正在向前发展。

但是,如果你发送数据到数据库中,在一块,你不能说多久它要采取的,所以你将无法计算进度的百分比。在这类案件中,你可以使用一个进度栏选框{A1}]