我在sql server 数据库查到了很多记录,我想实现点那个保存安扭可以将查出的信息保存成excel文件,我要怎样做啊,最好是有原码,先谢了!!!

解决方案 »

  1.   

    是这样的,我在窗体上点击查询按钮,就在datagrid中查出数据库中所有的信息,我想点击保存按钮之后就可以促成execl文件.
      

  2.   

    刚好有,不过只能是一个新的文件,如果文件已经存在的话会有一些问题
            private void saveDatas()
            {
                    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";Extended Properties=Excel 8.0;";    //savePath你的Excel文件的路径
                    OleDbConnection conn = new OleDbConnection(strConn);
                    OleDbCommand cmd = new OleDbCommand();
                    cmd.Connection = conn;            try
                {
                    cmd.Connection.Open();
                    cmd.CommandText = @"CREATE TABLE EmployeeInfo(EmployeeIndex int, CityName varchar,
                                        BasePay decimal, SocialBenefit decimal, EmployeeHouseFund decimal,
                                        EmployerHouseFund decimal, IncommingTax1 decimal, IncommingTax2 decimal,
                                        TotalEarning decimal)";
                    cmd.ExecuteNonQuery();         //创建一个表
                    cmd.CommandText = @"INSERT INTO EmployeeInfo VALUES (@Index, @CityName, @BasePay, 
                                        @SocialBft, @EmployeeHF, @EmployerHF, @InTax1, @InTax2, @Total)";
                    cmd.Parameters.Add("@Index", OleDbType.Integer);
                    cmd.Parameters.Add("@CityName", OleDbType.VarChar);
                    cmd.Parameters.Add("@BasePay", OleDbType.Decimal);
                    cmd.Parameters.Add("@SocialBft", OleDbType.Decimal);
                    cmd.Parameters.Add("@EmployeeHF", OleDbType.Decimal);
                    cmd.Parameters.Add("@EmployerHF", OleDbType.Decimal);
                    cmd.Parameters.Add("@InTax1", OleDbType.Decimal);
                    cmd.Parameters.Add("@InTax2", OleDbType.Decimal);
                    cmd.Parameters.Add("@Total", OleDbType.Decimal);                for (int i = 0; i < alBasePay.Count; i++)
                    {
                        cmd.Parameters[0].Value = (int)alEmployeeID[i];
                        cmd.Parameters[1].Value = cityName[(int)alICitys[i]];
                        cmd.Parameters[2].Value = (double)alBasePay[i];
                        cmd.Parameters[3].Value = (double)alSocialBenefit[i];
                        cmd.Parameters[4].Value = (double)alEmployeeHF[i];
                        cmd.Parameters[5].Value = (double)alEmployerHF[i];
                        cmd.Parameters[6].Value = (double)alIndividualIT1[i];
                        cmd.Parameters[7].Value = (double)alIndividualIT2[i];
                        cmd.Parameters[8].Value = (double)alTotalPays[i];
                        cmd.ExecuteNonQuery();
                    }                cmd.Connection.Close();
                    MessageBox.Show("Save done...!", "Pay Calculator");
                }
                catch (Exception ex)
                {
                    ex.ToString();
                    MessageBox.Show("Please use an empty Excel file", "Error!");
                }
                finally
                {
                    if (cmd.Connection.State == ConnectionState.Open)
                    {
                        cmd.Connection.Close();
                    }
                }
            }