2

最近我的代码一直有问题,我似乎无法弄清楚。我第一次编写代码时使用的是运行 WinXP 的计算机。但现在我试图在运行 Win7 的计算机上运行完全相同的代码,但它不起作用。现在当我说它不起作用时,我的意思是特定的代码行不起作用。其余代码运行。

这是有问题的代码:

    dataGridView1.DataSource = bindingSource1;
    GetData("SELECT Lastname, Firstname, DOB, SSAN, Minor FROM Children WHERE Children.ParentID = " + id + "");

上面的代码在我的 Form1_Load 中,应该在程序打开时运行并填充 dataGridView。

这是 GetData() 方法:

    private void GetData(string selectCommand)
    {
        try
        {
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = U:/Syndicate II/Syndicate II.accdb;Persist Security Info = False"; //"Provider=Microsoft.ACE.OLEDB.12.0;Data Source = C:/Documents and Settings/David/Desktop/SyndicateII/SyndicateII/Syndicate II.accdb;Persist Security Info = False";

            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectCommand, connectionString);

            OleDbCommandBuilder builder = new OleDbCommandBuilder(dataAdapter);

            DataTable table = new DataTable();
            table.Locale = System.Globalization.CultureInfo.InvariantCulture;
            dataAdapter.Fill(table);
            bindingSource1.DataSource = table;

            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

        }
        catch(OleDbException)
        {
            MessageBox.Show("didn't work");
        }
    }

这两段代码给我带来了问题。就像我说的,它可以在 WinXP 计算机上运行。但是当我在Win7电脑上运行它时,它不起作用。我尝试通过在代码中放置消息框以查看它们是否运行来测试它。所以看起来代码块只是没有运行,我不知道为什么。为了让事情变得更加混乱,代码曾经可以工作。当我第一次开始使用 Win7 comp 时,代码可以工作。一段时间后它有时会起作用。而现在它只是行不通。

我希望我已经清楚地描述了我的问题。我能得到的任何帮助都将不胜感激。

4

0 回答 0