返回首页

我有一个Excel数据库,我想删除,Excel工作表的行。
在这里,我提我的代码写在C#

private void pbDelete_Click(object sender, EventArgs e)

        {

            if (MobileNumber == "")

            {

                MessageBox.Show("Please select a Name !..");

            }

            else

            {

                if (MessageBox.Show("Do you realy want to delete this data?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                {

                    if (index != -1)

                    {

                        string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetDirectoryName(Application.ExecutablePath) + "\\Taas SMS.xls;Extended Properties=Excel 8.0;";

                        //oledbConn.Open();

                        //cmd1 = new OleDbCommand();

                        //cmd.Connection = oledbConn;

                        //cmd.CommandText = "INSERT INTO ExecutiveMember (Name,Designation,TravelAgent, MobileNumber) values ('" + dt.Rows[i][0] + "', '" + dt.Rows[i][1] + "','" + dt.Rows[i][2] + "', '" + dt.Rows[i][3] + "')";

                        //cmd.ExecuteNonQuery();

                        //oledbConn.Close();

                        OleDbConnection oledbConn1 = new OleDbConnection(conn);

                        oledbConn1.Open();

                        OleDbCommand cmd1 = new OleDbCommand();

                        cmd1.Connection = oledbConn1;

                        cmd1.CommandText = "select * from ExecutiveMember";

                        OleDbDataAdapter da = new OleDbDataAdapter(cmd1);

                        DataTable dt1 = new DataTable();

                        //dt1.Clear();

                        da.Fill(dt1);

 

                        OleDbConnection oledbConn = new OleDbConnection(conn);

                        oledbConn.Open();

                        OleDbCommand cmd2 = new OleDbCommand();

                        cmd2.Connection = oledbConn;

                        cmd2.CommandText = "update ExecutiveMember set Name='',Designation='',TravelAgent='',MobileNumber='' where MobileNumber='" + dt1.Rows[index][3] + "'";

                        cmd2.ExecuteNonQuery();

                        oledbConn.Close();

 

                        //DataRow dtRowDelete = dt1.Rows[index];

                        //dtRowDelete.Delete();

                       

                        //dt1.AcceptChanges();

                        da.Update(dt1);

 

                        dgvExecutiveMember.DataSource = dt1;

                        

                        //conn = new OleDbConnection();

                        //conn.ConnectionString = gm.ConnectionString;

                        //conn.Open();

                        ////cmd = new OleDbCommand("select * from ExecutiveMember where MobileNumber='" + MobileNumber + "'", conn);

                        //cmd = new OleDbCommand("select * from ExecutiveMember", conn);

                        //da = new OleDbDataAdapter(cmd);

                        //dt.Clear();

                        //da.Fill(dt);

                        //DataRow dtRowDelete = dt.Rows[index];

                        //dtRowDelete.Delete();

                        //dt.AcceptChanges();

                        //da.Update(dt);



                        

                        OleDbConnection oledbConn2 = new OleDbConnection(conn);

                        oledbConn.Open();

 

                        //conn = new OleDbConnection();

                        OleDbCommand cmd = new OleDbCommand("SELECT * FROM [ExecutiveMember]", oledbConn2);

                        OleDbDataAdapter oleda = new OleDbDataAdapter();

                        oleda.SelectCommand = cmd;

                        DataSet ds = new DataSet();

                        oleda.Fill(ds, "ExecutiveMember");

 

                        int rowcount = ds.Tables[0].Rows.Count;

                        oledbConn.Close();

 

                        

                        

 

                        for (int i = 0; i < rowcount-2; i++)

                        {

                            

                            oledbConn.Open();

                            cmd = new OleDbCommand();

                            cmd.Connection = oledbConn;

                            cmd.CommandText = "update ExecutiveMember set Name='" + dt1.Rows[i][0] + "',Designation='" + dt1.Rows[i][1] + "',TravelAgent='" + dt1.Rows[i][2] + "',MobileNumber='" + dt1.Rows[i][3] + "' where MobileNumber='" + dt1.Rows[i][3] + "'";

                            //cmd.CommandText = "INSERT INTO ExecutiveMember (Name,Designation,TravelAgent, MobileNumber) values ('" + dt1.Rows[i][0] + "', '" + dt1.Rows[i][1] + "','" + dt1.Rows[i][2] + "', '" + dt1.Rows[i][3] + "')";

                            cmd.ExecuteNonQuery();

                            oledbConn.Close();

                            Clear();

 

                            

                        }

 

                        //    conn = new OleDbConnection();

                        //    conn.ConnectionString = gm.ConnectionString;

                        //    conn.Open();

                        //    cmd = new OleDbCommand();

                        //    cmd.Connection = conn;



                        //    cmd.CommandText = "INSERT INTO ExecutiveMember (Name,Designation,TravelAgent, MobileNumber) values ('" + dt.Rows[i][0] + "', '" + dt.Rows[i][1] + "','" + dt.Rows[i][2] + "', '" + dt.Rows[i][3] + "')";

                        //    cmd.ExecuteNonQuery();

                        //    conn.Close();

                        //    Clear();

                        //    FillGrid();

                        //}

                         //conn.Close();



                        

                        Clear();

                        MobileNumber = "";

                        //FillGrid();

                                                                       

                        index = -1;

                        MessageBox.Show("Data Deleted!...");

                                                

                    }

                }

                else

                {

 

                }

            }

            

        }
这些代码可以删除行,Excel文件,但我想要的下一行,Excel工作表的价值,以取代空场。
请帮我解决这个问题。感谢在前进。

回答

评论会员:TheyCallMeMrJames 时间:2012/02/04
当你得到一个错误如

{C}
这意味着,未初始化的对象之一。您的附加调试器,你应该得到一个行号,在IDE和异常的详细信息。您可以使用,通过上述工作的错误。

有几个样品中的一系列问题和故障排除的努力]

欢呼
评论会员:游客 时间:2012/02/04
您正在使用dt.Clear()我没有看到你定义dt.rows地点