2
Answers

C# Office application

Hi,

I'm a new here, so excuse me if the board is not good for my topic. But I have a big problem and try to find help in every possible way:(. I create a silly simple application in my home in Visual Studio 2008, which serve to interating in Outlook Inbox folder and moved a mail items which passed a few conditions to subfolder named "Archive". On my home computer everythinks works fine, but when I run application on target machine in work, I get an error (exception), and I really don't know what to do:(. On target computer I have installed framework as the same version like I used on my home computer, and after that I read on google that I need: Office 2007 Primary Interop Assemblies, so I installed it too (I can see this in C:\Windows\assembly\ so I think that they are registered) but even now I get the same exception:(. I heart something that when the Oulook 2007 work with Exchange server in Domain, I would need to install this Office Interop Assemblies on serwer, but....how? My company network is large....server is out of my country...I don't have acces there...and second think that would be non logical....VBA scripts can be fired without any problems on local computer with Outlook 2007 and C# application which only use a data from local inbox account must have some biggest access? It's weird for me, please help me becouse I need it to my work, and completely don't know what to do:(.

Below I write exception which I get:

Unhandled Exception: System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem'. This operation failed becouse the QueryInterface call on the COM component for the interface with IID '{00063034-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported <Exception from HRESULT: 0x800004002 <E_NOINTERFACE>>


Sory for my english, I'm just learning, and please for any advice or tip, I would be very very very gratefuly

Greets

Micheal

Answers (2)
0
Satyapriya Nayak
NA 53k 8m 12y
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Retrieving_excel_data_to_combobox
{
    public partial class Form1 : Form
    {
        public OleDbConnection con;
        public void pintu(string s)
        {
            con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; " + "data source='" + s + " '; " + "Extended Properties=Excel 8.0;");

        }
        public OleDbCommand com;
        public DataSet ds;
        public OleDbDataAdapter oledbda;
        public DataTable dt;
        public string str;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnbrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfiledialog1 = new OpenFileDialog();
            openfiledialog1.ShowDialog();
            openfiledialog1.Filter = "allfiles|*.xls";
            TextBox1.Text = openfiledialog1.FileName;

        }

       

        private void btndisplay_Click(object sender, EventArgs e)
        {
            pintu(TextBox1.Text);
            try
            {
                con.Open();
                str = "select * from [sheet1$]";
                com = new OleDbCommand(str, con);
                ds = new DataSet();
                oledbda = new OleDbDataAdapter(com);
                oledbda.Fill(ds, "[sheet1$]");
                con.Close();
                DataGridView1.DataSource = ds;
                DataGridView1.DataMember = "[sheet1$]";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
    }
}

0
Tharake Gunatilake
NA 53 52.1k 12y
I got the answer guys..

 private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofImport = new OpenFileDialog();
            ofImport.Title = "Select file";
            ofImport.InitialDirectory = @"c:\";
            ofImport.FileName = openFileDialog1.FileName;
            ofImport.Filter = "Excel Sheet(*.xlsx)|*.xlsx|All Files(*.*)|*.*";
            ofImport.FilterIndex = 1;
            ofImport.RestoreDirectory = true;


            if (ofImport.ShowDialog() == DialogResult.OK)
            {

                string path = System.IO.Path.GetFullPath(ofImport.FileName);

                string query = "SELECT * FROM [Sheet1$]";

                OleDbConnection conn = new OleDbConnection();

                conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ofImport.FileName + ";Extended Properties=" + "\"Excel 12.0 Xml;HDR=YES;IMEX=1\"";

                OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn);

                DataSet dataSet = new DataSet();

                adapter.Fill(dataSet);

                dataGridView1.DataSource = dataSet.Tables[0];


            }
            else
            {
                ofImport.Dispose();
            }   
        }