Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MSProject上的任务导出在空白/空任务上出错_C#_Sql Server_Office Interop_Ms Project - Fatal编程技术网

C# MSProject上的任务导出在空白/空任务上出错

C# MSProject上的任务导出在空白/空任务上出错,c#,sql-server,office-interop,ms-project,C#,Sql Server,Office Interop,Ms Project,我在C#VSTO中创建了一个外接程序,用于将任务从MSProject导出到SQLServer。在MSProject中的任务具有空/空条目之前,我的代码工作正常 我不知道该怎么解决。看来,die foreach不在这里工作 MsProject.Tasks tasks = Globals.ThisAddIn.Application.ActiveProject.Tasks; using (SqlConnection cnn = new SqlConnection(connection

我在C#
VSTO
中创建了一个外接程序,用于将任务从MSProject导出到SQLServer。在MSProject中的任务具有空/空条目之前,我的代码工作正常

我不知道该怎么解决。看来,die foreach不在这里工作

    MsProject.Tasks tasks = Globals.ThisAddIn.Application.ActiveProject.Tasks;

    using (SqlConnection cnn = new SqlConnection(connectionString))
    {

    try
    {
        // Open the connection to the database.
        cnn.Open();

        foreach (Microsoft.Office.Interop.MSProject.Task t in tasks)
        {
                DateTime start = (DateTime)t.Start;
                DateTime finish = (DateTime)t.Finish;
                
                using (SqlCommand cmd = new SqlCommand(sql, cnn))
                {
                    // Create and set the parameters values 

                    cmd.Parameters.Add("@id", SqlDbType.Int).Value = t.ID;
                    cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = t.Name;
                    cmd.Parameters.Add("@start", SqlDbType.DateTime).Value = start;
                    cmd.Parameters.Add("@finish", SqlDbType.DateTime).Value = finish;
                    
                    int rowsAdded = cmd.ExecuteNonQuery();   
                }
            }
        
        MessageBox.Show("Data transfered" );


    }

            
在MSProject中,它看起来像:

有人知道如何循环或包含空白/空任务吗


目前我只得到对象的
NullPointerReference
作为错误,第三个任务不会导出到SQL Server。

这是一个常见问题。每当循环执行任务时,请检查任务对象是否为空,然后再使用它:

foreach (Microsoft.Office.Interop.MSProject.Task t in tasks)
{
    if (t != null)
    {
        DateTime start = (DateTime)t.Start;
        DateTime finish = (DateTime)t.Finish;
        // rest of code...

这是一个常见的问题。每当循环执行任务时,请检查任务对象是否为空,然后再使用它:

foreach (Microsoft.Office.Interop.MSProject.Task t in tasks)
{
    if (t != null)
    {
        DateTime start = (DateTime)t.Start;
        DateTime finish = (DateTime)t.Finish;
        // rest of code...