好的,我是参数化查询的菜鸟。我理解为什么你应该使用它们,但我找不到任何显示正确方式的资源或至少一个显示实际工作的正确方式的资源。
所以我的问题是关于我的代码是否正确。它编译并运行得很好,但它在 gridview 中绝对没有返回任何内容。
protected void SearchButton_Click(object sender, EventArgs e)
{
string searchBoxValue = SearchBox.Text;
string columnNameValue = ColumnName.SelectedValue;
columnNameValue.ToLower();
SqlCommand searchCommand = new SqlCommand();
searchCommand.Connection = connection;
searchCommand.CommandText = "select firstname AS FirstName,lastname AS LastName, zipcode as ZipCode, phone AS Phone, email AS Email, cancersurvivor AS CancerSurvivor, ethnicity AS Ethnicity from registrants where @columnname = @searchterm";
SqlParameter columnParam = new SqlParameter();
columnParam.ParameterName = "@columnname";
columnParam.Value = columnNameValue;
SqlParameter searchBoxParam = new SqlParameter();
searchBoxParam.ParameterName = "@searchterm";
searchBoxParam.Value = searchBoxValue;
searchCommand.Parameters.Add(columnParam);
searchCommand.Parameters.Add(searchBoxParam);
UpdateTable(searchCommand);
}
UpdateTable 函数接受一个 SqlCommand 对象,然后使用一个 DataAdapter 对象来执行命令并填充一个 DataTable 对象,然后将 gridview 数据源设置为 datatable 对象并绑定它。
就像我之前说的那样,我真的在寻找正确的方法来做到这一点?我需要一个存储过程才能做到这一点吗?我对这一切以及为什么它不起作用感到困惑。