asp.net c#代码中出现错误
我有下面的代码,这个代码是stackoverflow用户在我之前的文章中推荐给我的,它抛出了一些错误asp.net c#代码中出现错误,c#,asp.net,C#,Asp.net,我有下面的代码,这个代码是stackoverflow用户在我之前的文章中推荐给我的,它抛出了一些错误 protected void Button2_Click(object sender, EventArgs e) { String a = DropDownList1.SelectedItem.Value; String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0');
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 (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( IDisposable obj1 )
{
using( IDisposable obj2 )
{
// code
}
}
使用
语句将两个变量包装在中:
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( IDisposable obj1 )
{
using( IDisposable obj2 )
{
// code
}
}
不能使用
语句在一个中声明两种不同类型的变量
您需要使用
语句在两个不同的中声明OleDbConnection
和OleDbCommand
:
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)) {
...
}
不能使用
语句在一个中声明两种不同类型的变量
您需要使用
语句在两个不同的中声明OleDbConnection
和OleDbCommand
:
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))
您是否尝试过在没有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());
}
}
我相信你有一些打字错误。请试试这个:
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());
}
}
你不需要双缩进。使用(OdbcCommand cmd=new OdbcCommand(sql,myConn))我这样分离,现在我得到了另一个错误errir:找不到类型或名称空间名称“odbcReader”(你缺少using指令或程序集引用吗?@SLaks:我认为你永远不需要在C#中进行缩进。我想你的意思是你不需要额外的块。@Ishan,你检查过你的使用指令是否正确了吗?(正如新的错误所表明的那样)您不需要双重缩进。使用(OdbcCommand cmd=new OdbcCommand(sql,myConn))我这样分离,现在我得到了另一个错误errir:找不到类型或名称空间名称“odbcReader”(您是否缺少using指令或程序集引用?@SLaks:我认为您永远不需要在C#中进行缩进。我想你的意思是你不需要额外的块。@Ishan,你检查过你的使用指令是否正确了吗?(如新错误所示)谢谢。我这样做了,但我收到了另一个错误错误1找不到类型或命名空间名称“odbcReader”(是否缺少using指令或程序集引用?)谢谢。我这样做了,但我收到了另一个错误1找不到类型或命名空间名称“odbcReader”(是否缺少using指令或程序集引用?)是的,我也理解,但我不知道解决方案是的,我也理解,但我不知道解决方案DBCreader不是已知类型。OdbcDataReader应该是。如果嵌套语句太难读取,您也可以堆叠using语句。odbcReader不是已知类型。OdbcDataReader应该是。如果嵌套语句太难,您也可以堆叠using语句太难读了。