32位可执行文件的C#问题

问题描述 投票:0回答:1

我使用Visual Studio 2015编写了这段代码:

static string strconnect = "Dsn=mx86";
static public string strDoc_key = "";
static public bool bPicFounded = false;
OdbcDataAdapter dr = new OdbcDataAdapter();

DataSet ds = new DataSet();
Thread thread = null;
static public OdbcConnection dataConnection = new OdbcConnection(strconnect);
static public string strInitialDirectory = "";

public frmMain()
{
    InitializeComponent();
    try
    {
        if (dataConnection.State != ConnectionState.Open)
            dataConnection.Open();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

private void frmMain_Load(object sender, EventArgs e)
{
    if (dataConnection.State != ConnectionState.Open)
    {
        this.Invoke(new MethodInvoker(delegate { this.Close(); }));
    }
    try
    {
       // this.Invoke(new MethodInvoker(delegate
       // {

            DataTable mydt = new DataTable();
            using (OdbcCommand ord = new OdbcCommand("", dataConnection))
            {
                ord.CommandText = "SELECT `AnläggningsNr` GroupID ,`Beskrivning` GroupName  from `Utrustningar` " +
                                  "WHERE (((`NivåUpp`)='TOP') AND ((`Enhet`)='00'))";

                mydt.Load(ord.ExecuteReader());

                cboGroups.SelectedIndexChanged -= cboGroups_SelectedIndexChanged;

                if (mydt.Rows.Count > 0)
                {
                    cboGroups.ValueMember = "GroupID";
                    cboGroups.DisplayMember = "GroupName";

                    cboGroups.DataSource = mydt.DefaultView;

                    cboGroups.SelectedIndex = 0;
                    cboGroups_SelectedIndexChanged(null, null);
                }

                cboGroups.SelectedIndexChanged += cboGroups_SelectedIndexChanged;
            }
    }
    catch (Exception ex)
    {
        MessageBox.Show("a)Message is: " + ex.Message);
    }

}

当我进行x86构建时,组合框用system.data.datarowview填充,但是当我制作x64构建时,它工作正常。

这个问题可能是什么原因?

c# winforms odbc
1个回答
0
投票

当我从cboGroups.DisplayMember =“GroupName”中替换显示成员值时; to cboGroups.DisplayMember = mydt.columns [1] .columnname和value成员一样,它工作得很好并给我预期的结果所以当我尝试调试以了解两个表达式之间的区别时我注意到字符串“GroubName “带有空终止的字符,如”GroubName \ 0“,所以mydt.columns [1] .column name给出带有空终止字符的正确列名这就是我注意到我在odbc驱动程序中的问题,这给了我这种类型的错误

© www.soinside.com 2019 - 2024. All rights reserved.