编译时没有错误代码,但屏幕上没有数据表,我无法弄清楚原因(No error codes on compilation but there is no datatable on the screen a

编程入门 行业动态 更新时间:2024-10-21 03:35:16
编译时没有错误代码,但屏幕上没有数据表,我无法弄清楚原因(No error codes on compilation but there is no datatable on the screen and I cannot figure out why)

搜索文本框没有在屏幕上返回有效的数据表人,任何人都知道为什么?

数据库类:

static public DataTable SearchButton(string search) { using (var conn = new SqlConnection(DatabaseConnectionString)) { var dt = new DataTable(); const string searchQuery = "exec SearchTerm"; using (var cmd = new SqlCommand(searchQuery, conn)) { conn.Open(); cmd.Parameters.Add("@Search_Term", SqlDbType.VarChar, search.Length).Value = "%" + search + "%"; dt.Load(cmd.ExecuteReader()); return dt; } } }

PeopleList.aspx.cs:

protected void SearchButton_Click(object sender, EventArgs e) { if (SearchTextbox.Text == null || SearchTextbox.Text == "") { PeopleListLabel.Text = "Please enter a search term!"; } else { Phonelist.DataSource = Database.SearchButton(SearchTextbox.Text); Phonelist.DataBind(); } }

SQL存储过程:

print 'SearchTerm' if exists (select * from sys.objects where object_id = object_id(N'[SeachTerm]') AND type in (N'P', N'PC')) drop procedure SearchTerm go create procedure SearchTerm @Search_Term varchar(64) = null as begin set nocount on; SELECT first_name, last_name, email_address, gender, home_address, home_city, home_state, home_zip_code, telephone_number FROM person WHERE first_name LIKE @Search_Term OR last_name LIKE @Search_Term end

The search text box is not returning a valid person datatable on the screen, anyone have any idea why?

Database class:

static public DataTable SearchButton(string search) { using (var conn = new SqlConnection(DatabaseConnectionString)) { var dt = new DataTable(); const string searchQuery = "exec SearchTerm"; using (var cmd = new SqlCommand(searchQuery, conn)) { conn.Open(); cmd.Parameters.Add("@Search_Term", SqlDbType.VarChar, search.Length).Value = "%" + search + "%"; dt.Load(cmd.ExecuteReader()); return dt; } } }

PeopleList.aspx.cs:

protected void SearchButton_Click(object sender, EventArgs e) { if (SearchTextbox.Text == null || SearchTextbox.Text == "") { PeopleListLabel.Text = "Please enter a search term!"; } else { Phonelist.DataSource = Database.SearchButton(SearchTextbox.Text); Phonelist.DataBind(); } }

SQL Stored Procedure:

print 'SearchTerm' if exists (select * from sys.objects where object_id = object_id(N'[SeachTerm]') AND type in (N'P', N'PC')) drop procedure SearchTerm go create procedure SearchTerm @Search_Term varchar(64) = null as begin set nocount on; SELECT first_name, last_name, email_address, gender, home_address, home_city, home_state, home_zip_code, telephone_number FROM person WHERE first_name LIKE @Search_Term OR last_name LIKE @Search_Term end

最满意答案

您需要将搜索参数括在单引号中。

替换这个:

cmd.Parameters.Add("@Search_Term", SqlDbType.VarChar, search.Length).Value = "%" + search + "%";

有了这个:

cmd.Parameters.Add("@Search_Term", SqlDbType.VarChar, search.Length).Value = "'%" + search + "%'";

You need to enclose the search parameter within single quotes.

Replace This:

cmd.Parameters.Add("@Search_Term", SqlDbType.VarChar, search.Length).Value = "%" + search + "%";

With This:

cmd.Parameters.Add("@Search_Term", SqlDbType.VarChar, search.Length).Value = "'%" + search + "%'";

更多推荐

search,@Search_Term,cmd,dt,Text,电脑培训,计算机培训,IT培训"/> <meta name=&qu

本文发布于:2023-07-31 01:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1340495.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弄清楚   数据表   错误代码   原因   屏幕上

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!