i've trying this code to display content from sqlserver database based on querystring, but get error like this : Parameterized Query '(@ContentID nvarchar(4000))select idcontent,title,intro_text fro' expects
parameter @ContentID, which was not supplied.
what's the solution for this problem..?thanks you
code for default.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
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;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PopulateMenu();
}
}
private void PopulateMenu()
{
DataTable menuData = GetMenuData();
AddTopMenuItems(menuData);
}
private DataTable GetMenuData()
{
string selectCommand = "SELECT * FROM menu_top";
string conString = WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString;
SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString);
DataTable dtblCategories = new DataTable();
dad.Fill(dtblCategories);
return dtblCategories;
}
private void AddTopMenuItems(DataTable menuData)
{
DataView view = new DataView(menuData);
view.RowFilter = "ParentID IS NULL";
foreach (DataRowView row in view)
{
MenuItem newMenuItem = new MenuItem(row["MenuTitle"].ToString(), row["MenuId"].ToString(), null, "Default.aspx?id=" + row["contentID"].ToString());
Menu1.Items.Add(newMenuItem);
AddChildMenuItems(menuData, newMenuItem);
bindDetailsView();
}
}
private void AddChildMenuItems(DataTable menuData, MenuItem parentMenuItem)
{
DataView view = new DataView(menuData);
view.RowFilter = "ParentID=" + parentMenuItem.Value;
foreach (DataRowView row in view)
{
MenuItem newMenuItem = new MenuItem(row["MenuTitle"].ToString(), row["contentID"].ToString(), null, "Default.aspx?id=" + row["contentID"].ToString());
parentMenuItem.ChildItems.Add(newMenuItem);
AddChildMenuItems(menuData, newMenuItem);
}
}
public void bindDetailsView()
{
//SqlConnection con = new SqlConnection("Data Source=STD-258E51EA446\\SQLEXPRESS;Initial Catalog=Customers;Integrated Security=True");
//SqlCommand cmd = new SqlCommand("Select CustomerID,CustomerName,Address from Customer where CustomerID=@CustomerID", con);
//cmd.Parameters.AddWithValue("@CustomerID", Request.QueryString["QSCustomerID"]);
//SqlDataAdapter da = new SqlDataAdapter(cmd);
//DataSet ds = new DataSet();
//da.Fill(ds);
//DetailsView1.DataSource = ds;
//DetailsView1.DataBind();
string strConn;
strConn = WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);
Conn.Open();
SqlCommand cmd = new SqlCommand("select idcontent,title,intro_text from content where idcontent=@ContentId", Conn);
cmd.Parameters.AddWithValue("@ContentID", Request.QueryString["id"]);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
DetailsView1.DataSource = ds;
DetailsView1.DataBind();
//Conn.Close();
}
}
code for default.aspx
ramdansuseno
Member
2 Points
6 Posts
Problem with SqlParameter and Request.QueryString
Mar 06, 2012 08:04 PM|LINK
i've trying this code to display content from sqlserver database based on querystring, but get error like this : Parameterized Query '(@ContentID nvarchar(4000))select idcontent,title,intro_text fro' expects parameter @ContentID, which was not supplied.
what's the solution for this problem..?thanks you
code for default.aspx.cs
using System; using System.Collections; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Web.Configuration; 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; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { PopulateMenu(); } } private void PopulateMenu() { DataTable menuData = GetMenuData(); AddTopMenuItems(menuData); } private DataTable GetMenuData() { string selectCommand = "SELECT * FROM menu_top"; string conString = WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString; SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString); DataTable dtblCategories = new DataTable(); dad.Fill(dtblCategories); return dtblCategories; } private void AddTopMenuItems(DataTable menuData) { DataView view = new DataView(menuData); view.RowFilter = "ParentID IS NULL"; foreach (DataRowView row in view) { MenuItem newMenuItem = new MenuItem(row["MenuTitle"].ToString(), row["MenuId"].ToString(), null, "Default.aspx?id=" + row["contentID"].ToString()); Menu1.Items.Add(newMenuItem); AddChildMenuItems(menuData, newMenuItem); bindDetailsView(); } } private void AddChildMenuItems(DataTable menuData, MenuItem parentMenuItem) { DataView view = new DataView(menuData); view.RowFilter = "ParentID=" + parentMenuItem.Value; foreach (DataRowView row in view) { MenuItem newMenuItem = new MenuItem(row["MenuTitle"].ToString(), row["contentID"].ToString(), null, "Default.aspx?id=" + row["contentID"].ToString()); parentMenuItem.ChildItems.Add(newMenuItem); AddChildMenuItems(menuData, newMenuItem); } } public void bindDetailsView() { //SqlConnection con = new SqlConnection("Data Source=STD-258E51EA446\\SQLEXPRESS;Initial Catalog=Customers;Integrated Security=True"); //SqlCommand cmd = new SqlCommand("Select CustomerID,CustomerName,Address from Customer where CustomerID=@CustomerID", con); //cmd.Parameters.AddWithValue("@CustomerID", Request.QueryString["QSCustomerID"]); //SqlDataAdapter da = new SqlDataAdapter(cmd); //DataSet ds = new DataSet(); //da.Fill(ds); //DetailsView1.DataSource = ds; //DetailsView1.DataBind(); string strConn; strConn = WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString; SqlConnection Conn = new SqlConnection(strConn); Conn.Open(); SqlCommand cmd = new SqlCommand("select idcontent,title,intro_text from content where idcontent=@ContentId", Conn); cmd.Parameters.AddWithValue("@ContentID", Request.QueryString["id"]); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); DetailsView1.DataSource = ds; DetailsView1.DataBind(); //Conn.Close(); } } code for default.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <style type="text/css"> .menuItem { border:Solid 1px black; width:100px; padding:2px; background-color:#eeeeee; } .menuItem a { color:blue; } .grid { margin-top:10px; } .grid td, .grid th { padding:10px; } </style> <body> <form id="form1" runat="server"> <div> <asp:Menu id="Menu1" Orientation="horizontal" StaticMenuItemStyle-CssClass="menuItem" DynamicMenuItemStyle-CssClass="menuItem" Runat="server" /> <asp:DetailsView ID="DetailsView1" runat="server"></asp:DetailsView> </div> </form> </body> </html>rajsedhain
Contributor
4181 Points
1041 Posts
Re: Problem with SqlParameter and Request.QueryString
Mar 06, 2012 08:36 PM|LINK
to avoid the error, you can add something like this:
if (Request.QueryString["id"] != null) cmd.Parameters.AddWithValue("@ContentID", Request.QueryString["id"]); else cmd.Parameters.AddWithValue("@ContentID", DbNull.Value);Raj Sedhain
ramdansuseno
Member
2 Points
6 Posts
Re: Problem with SqlParameter and Request.QueryString
Mar 07, 2012 03:56 AM|LINK
it's work properly..thanks you very much mr. rajsedhain
rajsedhain
Contributor
4181 Points
1041 Posts
Re: Problem with SqlParameter and Request.QueryString
Mar 07, 2012 08:03 PM|LINK
Glad, it's working now.
Raj Sedhain