Set parameter value of SqlDataSource to SelectedValue of another page control

You have a DetailsView control with edit / add and all the other goodness enabled, but when adding a new record you want a non-visible field to get it’s value from another control like the SelectedValue of a GridView or a DropDownList in the InsertParameters collection of your SqlDataSource just use a ControlParameter instead

[codesyntax lang=”csharp”]
<InsertParameters>
    <asp:ControlParameter ControlID="ddlYourList" Name="ParameterName"
        PropertyName="SelectedValue" Type="Int32" />
    <asp:Parameter Name="SomeDetailsViewParameter" Type="String" />
</InsertParameters>
[/codesyntax]

Bind a Dataset to a Listbox using OleDbDataAdapter

Need to bind a web control to an OleDb data source in your C# web application, here’s the magic. In this case I am binding a ListBox control with an ID of ListBox1 to the ProductName field in the Products table of our old friend the Northwind database.

These are the using statements that you need to apply including the ConfigurationManager to get your web.config connection string conveniently

[codesyntax lang=”csharp”]
using System.Data;
using System.Data.OleDb;
using System.Configuration;
[/codesyntax]

Here is our class that does all the work

[codesyntax lang=”csharp”]
protected void DataSetFromOleDbDemo()
    {
      string strSQL = "SELECT * FROM Products WHERE CategoryID = 1";

      var conString = ConfigurationManager.ConnectionStrings["Northwind"];
      string Conn = conString.ConnectionString;

      try
      {
        using (OleDbDataAdapter adapter = new OleDbDataAdapter(strSQL, Conn))
        {
          DataSet ds = new DataSet();
          adapter.Fill(ds, "ProductInfo");

          foreach (DataRow dr in ds.Tables["ProductInfo"].Rows)
          {
            ListBox1.Items.Add(dr["ProductName"].ToString());
          }
        }
      }
      catch (Exception)
      {

        throw;
      }
    }
[/codesyntax]

And your OleDb connection string to put in the connectionStrings section of your web.config is as follows

[codesyntax lang=”xml”]
<connectionStrings>
    <add name="Northwind" connectionString="Provider=SQLOLEDB;server=YOURSERVER;database=Northwind;uid=USERNAME;password=PASSWORD;" />
</connectionStrings>
[/codesyntax]

 

 

Populate a DropDownList with the names of installed fonts with C#

Need to get a list of available fonts for your application?, this little gem will retrieve the font names of all installed fonts on your server (asp.net) and use them to populate a DropDownList.

These are the namesspaces you need to import to get this running.

[codesyntax lang=”csharp”]
using System.Drawing;
using System.Drawing.Text;
[/codesyntax]

Assuming your DropDownList has an ID of “ddl”

[codesyntax lang=”csharp”]
<asp:DropDownList ID="ddl" runat="server" />
[/codesyntax]

Your codebehind just needs an installed font collection object created with a foreach loop to go through in your Page_Load event.

[codesyntax lang=”csharp”]
      InstalledFontCollection fonts = new InstalledFontCollection();

      foreach (FontFamily family in fonts.Families)
      {
         ddl.Items.Add(family.Name);
      }
[/codesyntax]

Binding a GridView in C# with a parameterized command

With two controls on your asp.net page a DropDownList (ID ddlDropDownList) and a GridView (ID gvGridView), to retrieve the SelectedValue from the DropDownList and use that in the where clause of the query used to bind data to your GridView the following will help.

Required using statements

[codesyntax lang=”csharp”] using System.Data;
using System.Data.SqlClient;
using System.Configuration;
[/codesyntax]

ADO.NET block of code to base your bind on using an SQLDataAdapter so you can still have paging on the GridView.

[codesyntax lang=”csharp”]
    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CONNSTRINGNAME"].ConnectionString))
    {
      using (SqlCommand cmdGrid = new SqlCommand("SELECT * FROM TABLE WHERE FIELD = @PARAMETER", con))
      { 
      cmdGrid.Parameters.AddWithValue("@PARAMETER", ddlDropDownList.SelectedValue);
      con.Open();

      using (SqlDataAdapter da = new SqlDataAdapter(cmdGrid))
      {
        DataTable dt = new DataTable();
        da.Fill(dt);           
        gvGridView.DataSource = dt;
        gvGridView.DataBind();
      }
      }
    }
[/codesyntax]

The structure of the code is with using statments to ensure the garbage collection is carried out efficiently.

Databinding a GridView in C# with ADO.NET

Something simple, you want to use ADO.NET to bind data from SQL Server to a GridView, here is your code behind

[codesyntax lang=”csharp”]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

public partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string conn = ConfigurationManager.ConnectionStrings["STRINGNAME"].ConnectionString;
    SqlConnection con = new SqlConnection(conn);

    using (con)
    {
      SqlCommand cmd = new SqlCommand("SELECT * FROM Table", con);
      con.Open();
      SqlDataReader rdr = cmd.ExecuteReader();
      gv.DataSource = rdr;
      gv.DataBind();
    }
  }
}
[/codesyntax]

Here is your control

[codesyntax lang=”csharp”]

<asp:GridView ID=”gv” runat=”server” />

[/codesyntax]

How to store and retrieve information using web.config

So you like the idea of storing variables centrally, and want to know how to implement that in your c# web site.

Simply add the following node to your web.config if it does not already exist

[codesyntax lang=”xml”]
<configuration>
  <appSettings>
    <add key="brad" value="this came from web.config"/>
  </appSettings>
</configuration>
[/codesyntax]

Then import the Configuration namespace at the top of your codebehind with

[codesyntax lang=”csharp”]
using System.Web.Configuration;
[/codesyntax]

Finally in your webform or codebehind file to retrieve the stored value from the key/value pair stored in web.config simply use this statement

[codesyntax lang=”csharp”]
yourVariable = WebConfigurationManager.AppSettings["Brad"];
[/codesyntax]