C#学习教程:c#在SqlDataAdapter中使用Parameters.AddWithValue搜索代码如下。varda=newSqlDataAdapter("SELECT*FROMannotationsWHEREannotationLIKE'%"+txtSearch.Text+"%'",_mssqlCon.connection);vardt=newDataTable();da.Fill(dt);我重写了这样的代码:SqlDataAdapterda;da=newSqlDataAdapter("SELECT*FROMannotationsWHEREannotationLIKE'%@search%'",_mssqlCon.connection);da.SelectCommand.Parameters.AddWithValue("@search",txtSearch.Text);vardt=newDataTable();da.Fill(dt);但它失败了。用于初始化SqlDataAdapter的字符串成为SqlDataAdapter的SelectCommand属性的CommandText。您可以使用此代码向此命令添加参数da=newSqlDataAdapter("SELECT*FROMannotationsWHEREannotationLIKE@search",_mssqlCon.connection);da.SelectCommand.Parameters.AddWithValue("@search","%"+txtSearch.Text+"%");您已要求使用AddWithValue,但请记住,虽然它是一个有用的快捷方式,但它有许多缺点,而且都有详细的文档记录。因此,不使用AddWithValue并使用Object和CollectionInitializers语法的相同代码可以写成da=newSqlDataAdapter("SELECT*FROMannotationsWHEREannotationLIKE@search",_mssqlCon.connection);da.SelectCommand.Parameters.Add(newSqlParameter{ParameterName="@search",Value="%"+txtSearch.Text+"%",SqlDbType=SqlDbType.NVarChar,Size=2000//假设2000个字符大小字段注释(MAX为-1)});使用da.SelectCommand.Parameters.Add()而不是cmd.Parameters.Add(),这里是处理带有两个参数的存储过程的示例,第二个是可为空的int参数:publicDataTableGetData(intpar1,int?par2){使用(SqlConnectionconn=newSqlConnection(connectionString)){使用(SqlDataAdapterda=newSqlDataAdapter()){stringsql="StoreProcedure_name";哒。SelectCommand=newSqlCommand(sql,conn);da.SelectCommand.CommandType=CommandType.StoredProcedure;da.SelectCommand.Parameters.Add("@Par1",SqlDbType.Int).Value=par1;da.SelectCommand.Parameters.Add("@Par2",SqlDbType.Int).Value=(object)par2??DBNull.Value;数据集ds=new数据集();da.Fill(ds,"SourceTable_Name");DataTabledt=ds.Tables["SourceTable_Name"];//foreach(DataRowrowindt.Rows)//{//你甚至可以在这里操作你的数据//}returndt;}}}试试这个:mySearchString="Select*FromtestWhere([title]LIKE'%'+@title+'%')";cmd.Parameters.Add("@title",SqlDbType.VarChar,120);cmd.Parameters("@title").Value=TextBox1.Text;我用Repeater显示数据以上是C#学习教程:c#在SqlDataAdapter中使用参数如果.AddWithValue分享的所有内容对你有用,需要进一步了解C#学习教程,希望大家多多关注—intqueryString=int.Parse(Request.QueryString["Id"]);SqlConnectionconn=newSqlConnection("server=.;Database=Northwind;IntegratedSecurity=true;");试试{conn.Open();SqlDataAdapterdataAdapter=newSqlDataAdapter("SELECTProductID,ProductName,UnitPrice,CategoryIDFROMProductsWHERECategoryID=@CategoryID",conn);dataAdapter.SelectCommand.Parameters.Add("@CategoryID",queryString);数据集数据集=新数据集();dataAdapter.Fill(数据集);QueryStringProductListRepeater.DataSource=dataSet;QueryStringProductListRepeater.DataBind();}catch{Response.Write("QueryStringProductListRepeater");}最后{conn.Close();,如涉及侵权,请点击维权联系管理员删除,如需转载请注明出处:
