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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了32位可执行文件的C#问题相关的知识,希望对你有一定的参考价值。

我使用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构建时,它工作正常。

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

答案

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

以上是关于32位可执行文件的C#问题的主要内容,如果未能解决你的问题,请参考以下文章

32 位可执行文件不在 Docker 容器中休眠

在 Open Suse Leap 15.1 上对 32 位可执行文件的 iconv_open 支持

Exec 格式错误 32 位可执行 Windows 子系统 for Linux?

有任何工具可用于将 32 位/64 位可执行文件打包在一起吗? [关闭]

为啥我能够将 x64 程序集加载到 AnyCPU Prefer 32 位可执行文件中?

为啥 cx_Freeze 在 64 位 Debian Linux 上运行时使 32 位可执行?