0

新しい質問。私はこれをグリッドビューとして持っており、ページが読み込まれるときにグリッドビューがデータベース情報でいっぱいになるようにしたいのです。

したがって、以下はグリッドビューのコードです。その下にc#コードがあります。

アップデート

<asp:GridView ID="RegistrantsView" runat="server" AllowPaging="True" 
                 AllowSorting="True" AutoGenerateColumns="True" 
                 CellPadding="4" 
                 ForeColor="#333333" GridLines="None">
                 <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                 <EditRowStyle BackColor="#999999" />
                 <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                 <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                 <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                 <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                 <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                 <SortedAscendingCellStyle BackColor="#E9E7E2" />
                 <SortedAscendingHeaderStyle BackColor="#506C8C" />
                 <SortedDescendingCellStyle BackColor="#FFFDF8" />
                 <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
             </asp:GridView>

C#:

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["FFL-New DataConnectionString"].ConnectionString);

protected void Page_Load(object sender, EventArgs e)
{
    connection.Open();//opens connection on page load
    SqlCommand selectAllCommand = new SqlCommand();
    selectAllCommand.CommandText = "select * from registrants";
    selectAllCommand.Connection = connection;

    SqlDataAdapter sda = new SqlDataAdapter();
    sda.SelectCommand = selectAllCommand;

    DataTable dt = new DataTable();
    sda.Fill(dt);

    RegistrantsView.DataSource = dt;
    RegistrantsView.DataBind();
}
4

1 に答える 1

0

まず第一に、クエリはSQLインジェクションを起こしやすいことに注意する必要があります。これはセキュリティリスクです!!

ExecuteNonQueryの代わりに、DataAdapterを使用してDataTableに入力し、:の前にRegistrantsViewのデータソースを設定します。DataBind

protected void SearchButton_Click(object sender, EventArgs e)
{
    string searchBoxValue = SearchBox.Text;
    string columnNameValue = ColumnName.SelectedValue;
    columnNameValue.ToLower();

    string sqlQuery = "select * from registrants";
    DataTable dt = new DataTable();

    using (SqlCommand searchCommand = new SqlCommand(sqlQuery, connection))
    {
        connection.Open();
        using (SqlDataReader reader = cmd.ExecuteReader())
        {
              dt.Load(reader);
        }
    }

    RegistrantsView.DataSource = dt;
    RegistrantsView.DataBind();
}

そしてそれがPageLoadにある場合:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostback)
    {
        string sqlQuery = "select * from registrants";
        DataTable dt = new DataTable();
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["FFL-New DataConnectionString"].ConnectionString))
        {
            using (SqlCommand searchCommand = new SqlCommand(sqlQuery, connection))
            {
                connection.Open();
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                      dt.Load(reader);
                }
            }
        }
        RegistrantsView.DataSource = dt;
        RegistrantsView.DataBind();
    }
}
于 2012-12-17T21:31:54.937 に答える