0

オンラインで MS SQL データベースに接続する方法をたくさん見つけています。web.config で接続文字列を使用しています。私たちが望むものに対して完全にうまく機能しており、次のようになります。

<connectionStrings>
    <add name="xxx" 
         connectionString="SERVER=xxx;UID=xxx;Trusted_Connection=Yes;DATABASE=xxx;"
      providerName="xxx" />
</connectionStrings>

これが接続する最良の方法ですか?次に、主にgridviewを使用するasp Webフォームアプリケーションで使用しています

  <asp:SqlDataSource ID="MatchDataSource" Runat="server"

            SelectCommand="SELECT * FROM [xxx].[Matcxxxh]"
            UpdateCommand="UPDATE [xxx].[Matxxxch] SET [xxx] = 
              @xxx, [xxx] = @xxx, [xxx] = 
              @xxx WHERE x=@xxxAnd x=@xxx"
            ConnectionString="<%$ ConnectionStrings:xxx %>">
            <UpdateParameters>
                <asp:Parameter Type="String" Name="CSISN"/>
                <asp:Parameter Type="String"  Name="ProcName"/>

            </UpdateParameters>
        </asp:SqlDataSource>

        <asp:GridView ID="GridView1" Runat="server" 
            DataSourceID="MatchDataSource" Width="100%">
            <RowStyle BackColor="white" ForeColor="black" Font-Italic="false" BorderColor="Black" />


            <Columns>

                <asp:TemplateField SortExpression="xxx" HeaderText="xxx">
                    <EditItemTemplate>
                        <asp:TextBox ID="editxxx" Runat="server" Text='<%# Bind("xxx") %>' 
                            MaxLength="15" ToolTip="Enter CSI SN"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ErrorMessage="You must provide a xxx." ControlToValidate="editxxx">*</asp:RequiredFieldValidator>
                    </EditItemTemplate>
                    <ItemTemplate><asp:Label Runat="server" Text='<%# Bind("CSISN") %>' ID="Label1"></asp:Label></ItemTemplate>
                </asp:TemplateField>

私の質問は

  1. 私はこれについて正しく行っていますか?
  2. ベストプラクティスを示す適切なチュートリアルを教えてもらえますか?
  3. スクリプトの実行が終了したら、最後に接続を閉じるにはどうすればよいですか?
4

2 に答える 2

2
  1. これは、構成から接続文字列を使用する多くの方法の1 つです。何も問題はありません。良さそう。

  2. いいえ、これは主観的なものであり、ここで回答するようなものではありません.

  3. スクリプトが終了すると、接続が閉じます。何もする必要はありません (SqlDataSourceすべての詳細を処理します)。

于 2012-05-04T10:57:16.790 に答える
0

SqlDataSource を使用することに同意します。

はい、そのページではうまく機能します。ただし、呼び出しを別のページで使用する必要がある場合は、コピーして貼り付けてそこで機能させる必要があります。

データベースへの呼び出しを行い、それを List または IEnumerable として返すある種のクラスを作成することをお勧めします。次に、そのクラスを使用して、コード ビハインドでデータ ソースを割り当てることができます。

以下は、エンティティ フレームワークを使用してデータをクエリする小さな例です。


データ アクセス クラス

public static class DataAccess
{
    public static List<Section> GetDataFromDatabase()
    {
        List<Section> recordList;
        using (CustomEntities context = new CustomEntities())
        {

            IQueryable<Section> query = from records in context.Records
                                                 select sections;
            recordList= query.ToList<Record>();
        }
        return recordList;
    }
}

コードビハインドの使用

    private void BindLists()
    {
        // Get the data
        List<Section> theData = DataAccess.GetDataFromDatabase();

        // Assign the data source
        gridView.DataSource = theData;

        // Bind the grid view
        gridView.DataBind();
    }

この方法により、アプリケーション全体でより多くの再利用が可能になり、変更がはるかに簡単になります。

于 2012-05-04T13:43:36.123 に答える