2011-11-08 12 views
1

C#を使用してASP.NETでWebテンプレートを開発しています。ASP.NETを使用してコードビハインドからデータベースデータにアクセスするC#

<connectionStrings> 
<add name="NorthwindConnectionString" 
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True" 
providerName="System.Data.SqlClient"/> 
</connectionStrings> 

と接続文字列のアクセスは以下の通りである:私の接続文字列がある

string connStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 

次のように私のSqlDataSourceは次のとおりです。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" 
SelectCommand="SELECT [ProductID], [ProductName], [Discontinued] FROM [Alphabetical list of products]" 
InsertCommand = "INSERT INTO [Alphabetical list of products] (ProductID, ProductName, Discontinued)VALUES(@ProductID,@ProductName,@Discontinued)"> 
<InsertParameters> 
<asp:Parameter Name="ProductID" Type="String" /> 
<asp:Parameter Name="ProductName" Type="String" /> 
<asp:Parameter Name="Discontinued" Type="String" /> 
</InsertParameters> 
</asp:SqlDataSource> 

私はListViewを入れていますページを使用してデータを表示します。今、データベースのデータにアクセスするにはどうすればよいのですか?また、コードを使ってデータを取得してページ内に表示する方法はありますか?

ご存知のように、​​のページ内にあるすべてのデータにアクセスできます。 たとえば、私は列ProductNameを持っていますが、この列のデータを取得し、再フォーマットしてページフォームコードに渡し、コードの後ろにSqlDataSourceと書きます。

答えて

0

私はこれより多くの選択肢があると思うが、これは私がそれをした方法である。ページ内のSqlDataSourceを切り取り、コードからデータをフェッチしてバインドします。

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString) 
{ 
    var selectCommand = new SqlCommand("SELECT ...");
selectCommand.CommandType = CommandType.Text; selectCommand.Connection = connection;

  var dataAdapter = new SqlDataAdapter()
  dataAdapter.SelectCommand = selectCommand

  var dataSet = new DataSet();

  connection.Open()
  dataAdapter.Fill(dataSet, "myDataSet");
  connection.Close()

  // now, the dataSet.Tables[0] is a DataTable with your data in it. You can add, edit or remove data in this table before binding it to the ListView

  myListView.DataSource = dataSet;
  myListView.DataBind(); }
この例では、データを挿入するための別のコードを記述する必要があります。 ASP.NETを扱う場合、ASP.NETアプリケーションはステートレスなので、セッションやViewStateに格納されているもの以外の状態やデータを覚えていないので、私はこのような目的でコードを記述します。

+0

親愛なるKBoekに、本当に役に立ちました答えを感謝します。追加、更新、削除のコードを私に提供してください。私はこの分野では新しい人です。どうもありがとう –

関連する問題