sql查询问题,比较复杂
在一个页面中我方了一个gridview1,sqldatasource来显示数据(已经连接好了),在输入框中设置查询的关键字,我的查询是这样写的:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn;
SqlCommand mycommned;
SqlDataReader myreader;
SqlParameter str_temp;
int listindex;
listindex = 0;
listindex = DropDownList1.SelectedIndex;
conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings[ "jwglConn "].ConnectionString;
mycommned = new SqlCommand();
switch (listindex)
{
case 0: mycommned.CommandText = "select * from class_tabl ";
break;
case 1: mycommned.CommandText = "select * from class_tabl where class_id like '%@ "+TextBox2.Text.Trim()+ "% ' ";
break;
// case 2: mycommned.CommandText = "select * from class_tabl ";
// case 3: mycommned.CommandText = "select * from class_tabl ";
// case 4: mycommned.CommandText = "select * from class_tabl ";
}
mycommned.CommandType = CommandType.Text;
mycommned.Connection = conn;
// str_temp = new SqlParameter();
// str_temp.ParameterName = "@str_temp ";
// str_temp.SqlDbType = SqlDbType.Char;
// str_temp.Size = 10;
// str_temp.Direction = ParameterDirection.Input;
// str_temp.Value = TextBox2.Text.Trim();
// mycommned.Parameters.Add(str_temp);
mycommned.Connection.Open();
myreader = mycommned.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataSource = null;
GridView1.DataSource = myreader;
// GridView1.DataSource = SqlDataSource1.ConnectionString;
mycommned.Dispose();
conn.Dispose();
}
但是提示出错,如下:
“/WebSite2”应用程序中的服务器错误。
--------------------------------------------
“GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: “GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[InvalidOperationException: “GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。]
System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +367
请问一下,这个问题该怎么解决,谢谢
[解决办法]
“GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。
[解决办法]
一般这样的需求都是使用objectdatasource的,但是不会也没关系
这样,你在Button1_Click中这样写
GridView1.DataSourceID = null;
GridView1.DataSource = myreader;
GridView1.DataBind();
[解决办法]
GridView1.DataSource = myreader;
改成
GridView1.DataSourceID = myreader;
[解决办法]
cpp2017(慕白兄)正解,楼主的问题应该解决了吧