繁体   English   中英

ASP.NET C#代码错误

[英]Error in asp.net c# code

我有以下代码,我以前的文章中stackoverflow用户向我推荐了此代码,它抛出一些错误

protected void Button2_Click(object sender, EventArgs e)
    {
        String a = DropDownList1.SelectedItem.Value;
        String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0');      
        String c = TextBox2.Text.PadLeft(5,'0').ToString();
        String d = TextBox3.Text.ToString();
        String digit = a+ b  + c + d;
        string sql = "select * from testcase.main where reg_no =?";

try
        {
            using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"), 
                OdbcCommand cmd = new OdbcCommand(sql, myConn))
            {
                    myConn.Open();
                    //**
                    cmd.Parameters.AddWithValue("?", digit);
                    using (odbcReader MyReader = cmd.ExecuteReader())
                    {
                        //**
                        while (MyReader.Read())
                        {
                            String f = MyReader["pet_name"].ToString();
                            String g = MyReader["res_name"].ToString();

                            Label9.Visible = true;
                            Label9.Text = f;

                            Label10.Visible = true;
                            Label10.Text = "VS";

                            //Label11.Visible = true;
                            Label11.Text = g;

                        }
                    }
                }
            }

        catch (Exception e1)
        {
            Response.Write(e1.ToString());
        }
    }

错误是:

Error 1 Cannot use more than one type in a for, using, fixed, or declaration statement 

我该如何解决此错误?声明中有什么问题?

您在using语句中包装了两个变量:

using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"), 
                OdbcCommand cmd = new OdbcCommand(sql, myConn))

将它们分成两个嵌套的using语句。

using( IDisposable obj1 )
{
    using( IDisposable obj2 )
    {
         // code
    }
}

您不能在单个using语句中声明两种不同类型的变量。

您需要在两个不同的using语句中声明OleDbConnectionOleDbCommand

using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"))
using (OdbcCommand cmd = new OdbcCommand(sql, myConn)) {
    ...
}

您是否尝试过在此行中没有myConn和cmd的情况:

        using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"), 
            OdbcCommand cmd = new OdbcCommand(sql, myConn))

我相信您有错别字。 请尝试以下方法:

protected void Button2_Click(object sender, EventArgs e)
{
    String a = DropDownList1.SelectedItem.Value;
    String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0');      
    String c = TextBox2.Text.PadLeft(5,'0').ToString();
    String d = TextBox3.Text.ToString();
    String digit = a+ b  + c + d;
    string sql = "select * from testcase.main where reg_no =?";

    try
    {
        using (OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;"))
        using (OdbcCommand cmd = new OdbcCommand(sql, myConn))
        {
            myConn.Open();
            //**
            cmd.Parameters.AddWithValue("?", digit);
            using (OdbcDataReader MyReader = cmd.ExecuteReader())
            {
                //**
                while (MyReader.Read())
                {
                    String f = MyReader["pet_name"].ToString();
                    String g = MyReader["res_name"].ToString();

                    Label9.Visible = true;
                    Label9.Text = f;

                    Label10.Visible = true;
                    Label10.Text = "VS";

                    //Label11.Visible = true;
                    Label11.Text = g;

                }
            }
        }
    }
    catch (Exception e1)
    {
        Response.Write(e1.ToString());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM