您的位置:首页 > 其它

使用存储过程实现显示搜索结果和数据条数

2013-03-11 17:45 330 查看
存储过程:

CREATE PROC Pro_GetNewsByTitleAndContentNumb

@newsKey VARCHAR(64),

@numb int out

AS

SELECT NewsTitle,SUBSTRING(NewsContent,1,20)+'......' as NewsContent,CreateTime FROM T_News

WHERE NewsTitle like @newsKey or NewsContent like @newsKey;

SELECT @numb=COUNT(*)FROM T_News

WHERE NewsTitle like @newsKey or NewsContent like @newsKey;

Go

前台代码:

<body>

<form id="form1" runat="server">

<div>标题:<asp:TextBox ID="txtNewsTitle" runat="server" ></asp:TextBox>

 <asp:Button ID="btnQuery" runat="server" Text="搜索" onclick="btnQuery_Click" />   共搜索到了<asp:Label

ID="Label1" runat="server" Text=""></asp:Label>条数据

<div id="divResult" runat="server">

</div>

</div>

</form>

</body>

后台代码:

string conStr = @"Data Source=.;Initial Catalog=News;Persist Security Info=True;User ID=sa;Password=111111";

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

DataLoad();

}

}

private void DataLoad()

{

#region 根据用户的输入获取数据

SqlConnection conn = new SqlConnection(conStr);

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandText = "Pro_GetNewsByTitleAndContentNumb";

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@newsKey", "%" + txtNewsTitle.Text + "%");

#region output参数

SqlParameter param1 = new SqlParameter("@numb", SqlDbType.Int);

cmd.Parameters.Add(param1);

param1.Direction = ParameterDirection.Output;

#endregion

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

DataTable dt = new DataTable();

adapter.Fill(dt);

StringBuilder sb1 = new StringBuilder();

#endregion

#region 将数据拼接成字符串发送到前台

Label1.Text = (param1.Value).ToString();

string newscontent = string.Empty;

string newstitle = string.Empty;

sb1.Append("<table border=2");

sb1.Append("<tr><td>标题</td><td>内容</td><td>创建时间</td></tr>");

foreach (DataRow row in dt.Rows)

{

sb1.Append("<tr>");

newstitle = row["NewsTitle"].ToString();

sb1.Append("<td>" + newstitle + "</td>");

newscontent = row["NewsContent"].ToString();

sb1.Append("<td>" + newscontent + "</td>");

sb1.Append("<td>" + Convert.ToDateTime(row["CreateTime"].ToString()).ToString("yyyy-MM-dd hh-mm-ss") + "</td>");

sb1.Append("</tr>");

}

sb1.Append("</table>");

divResult.InnerHtml = sb1.ToString();

cmd.ExecuteNonQuery();

cmd.Dispose();

conn.Dispose();

#endregion

}

protected void btnQuery_Click(object sender, EventArgs e)

{

DataLoad();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐