Search.ascx.cs代码:using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Web.Configuration;public partial class Search : System.Web.UI.UserControl
{
private string labelText; //提示用户要输入什么样的查询条件
private string connectionString; //链接数据库
private GridView resultGridView; //要填充的GridView控件
private string tableName; //要查询数据库中的数据表名
private string columnCondition; //根据哪一列进行查询
private string errorMessage; //错误信息
/// <summary>
/// 公开的属性,由程序员设置提示用户输入的文字
/// </summary>
public string LabelText
{
set
{
this.labelText = value;
}
get
{
return this.labelText;
}
}
/// <summary>
/// 公开的属性,由程序员设置链接数据库的字符串
/// </summary>
public string ConnectionString
{
set
{
this.connectionString = value;
}
get
{
return this.connectionString;
}
}
/// <summary>
/// 公开的属性,由程序员设置要填充的GridView
/// </summary>
public GridView ResultGridView
{
set
{
resultGridView = value;
}
get
{
return this.resultGridView;
}
}
/// <summary>
/// 公开的属性,由程序员设置要访问的数据库中的数据表名
/// </summary>
public string TableName
{
set
{
this.tableName = value;
}
get
{
return this.tableName;
}
}
/// <summary>
/// 公开的属性,由程序员设置根据哪一列进行查询
/// </summary>
public string ColumnCondition
{
set
{
this.columnCondition = value;
}
get
{
return this.columnCondition;
}
}
/// <summary>
/// 搜索结果
/// </summary>
private DataTable SearchResult()
{
try
{
string connectionString = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);//定义SQL连接
string sqlString = "select*from" + tableName + "where" + columnCondition + "like'%" + this.Condition.Text.ToString() + "%'";
conn.Open();
SqlDataAdapter ada = new SqlDataAdapter(sqlString, conn);
DataTable dataTable = new DataTable();
ada.Fill(dataTable);
conn.Close();
return dataTable;
}
catch(Exception e)
{
//errorMessage=e.Message;
errorMessage = "查询失败,请重新查询。";
return null;
}
}
protected void Page_Load(object sender, EventArgs e)
{
this.ColumnName.Text = this.labelText;//设置lable控件的显示文本,提示用户要输入的查询条件
}
protected void ButSearch_Click(object sender, EventArgs e)
{
//把查询的数据填充到GridView控件中
resultGridView.DataSource = SearchResult().DefaultView;
resultGridView.DataBind();
}
}Search.ascx代码:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Search.ascx.cs" Inherits="Search" %>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:Label ID="ColumnName" runat="server" Text="姓名:"></asp:Label>
</td>
<td>
<asp:TextBox ID="Condition" runat="server" Width="300px"></asp:TextBox>
</td>
<td>
<asp:Button ID="ButSearch" runat="server" onclick="ButSearch_Click" Text="搜索" />
</td>
</tr>
</table>我调用这个控件时 点击“搜索”按钮会提示我未将对象引用设置到对象的实例。
行 123: {
行 124: //把查询的数据填充到GridView控件中
行 125: resultGridView.DataSource = SearchResult().DefaultView;
行 126: resultGridView.DataBind();
行 127: }这个怎么解决?会是哪里的错误?
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Web.Configuration;public partial class Search : System.Web.UI.UserControl
{
private string labelText; //提示用户要输入什么样的查询条件
private string connectionString; //链接数据库
private GridView resultGridView; //要填充的GridView控件
private string tableName; //要查询数据库中的数据表名
private string columnCondition; //根据哪一列进行查询
private string errorMessage; //错误信息
/// <summary>
/// 公开的属性,由程序员设置提示用户输入的文字
/// </summary>
public string LabelText
{
set
{
this.labelText = value;
}
get
{
return this.labelText;
}
}
/// <summary>
/// 公开的属性,由程序员设置链接数据库的字符串
/// </summary>
public string ConnectionString
{
set
{
this.connectionString = value;
}
get
{
return this.connectionString;
}
}
/// <summary>
/// 公开的属性,由程序员设置要填充的GridView
/// </summary>
public GridView ResultGridView
{
set
{
resultGridView = value;
}
get
{
return this.resultGridView;
}
}
/// <summary>
/// 公开的属性,由程序员设置要访问的数据库中的数据表名
/// </summary>
public string TableName
{
set
{
this.tableName = value;
}
get
{
return this.tableName;
}
}
/// <summary>
/// 公开的属性,由程序员设置根据哪一列进行查询
/// </summary>
public string ColumnCondition
{
set
{
this.columnCondition = value;
}
get
{
return this.columnCondition;
}
}
/// <summary>
/// 搜索结果
/// </summary>
private DataTable SearchResult()
{
try
{
string connectionString = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);//定义SQL连接
string sqlString = "select*from" + tableName + "where" + columnCondition + "like'%" + this.Condition.Text.ToString() + "%'";
conn.Open();
SqlDataAdapter ada = new SqlDataAdapter(sqlString, conn);
DataTable dataTable = new DataTable();
ada.Fill(dataTable);
conn.Close();
return dataTable;
}
catch(Exception e)
{
//errorMessage=e.Message;
errorMessage = "查询失败,请重新查询。";
return null;
}
}
protected void Page_Load(object sender, EventArgs e)
{
this.ColumnName.Text = this.labelText;//设置lable控件的显示文本,提示用户要输入的查询条件
}
protected void ButSearch_Click(object sender, EventArgs e)
{
//把查询的数据填充到GridView控件中
resultGridView.DataSource = SearchResult().DefaultView;
resultGridView.DataBind();
}
}Search.ascx代码:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Search.ascx.cs" Inherits="Search" %>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:Label ID="ColumnName" runat="server" Text="姓名:"></asp:Label>
</td>
<td>
<asp:TextBox ID="Condition" runat="server" Width="300px"></asp:TextBox>
</td>
<td>
<asp:Button ID="ButSearch" runat="server" onclick="ButSearch_Click" Text="搜索" />
</td>
</tr>
</table>我调用这个控件时 点击“搜索”按钮会提示我未将对象引用设置到对象的实例。
行 123: {
行 124: //把查询的数据填充到GridView控件中
行 125: resultGridView.DataSource = SearchResult().DefaultView;
行 126: resultGridView.DataBind();
行 127: }这个怎么解决?会是哪里的错误?
{
//errorMessage=e.Message;
errorMessage = "查询失败,请重新查询。";
return null;
} 查询失败return null
这里很多地方错了,缺很多格。自己检查