- PR -

SqlDataSource で コントロールにバインドせずに読む方法

1
投稿者投稿内容
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-05-06 20:34
お世話になります。

SqlDataSource で書き込まれたデータをコントロールにバインドしないで
任意(順でも)に読みたいのですが、Open() で接続するとタイムアウトなのか
接続できません。ためしにGridView を配置しバインドすると表示します。

下記のコードのどこがおかしいでしょうか?サンプルが少なくうまく検討できません。
よろしく教えてください。

VS2005 ASP.NET

string connectionString = "Data Source=(local);database=KindOfDevice;" + "Integrated Security=SSPI;";
string queryString = "SELECT * FROM KindOfDevice;";

using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}

// Call Close when done reading.
reader.Close();
}

以下のような、サーバーエラーが出ます。
サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした)
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-05-06 22:28
引用:
string connectionString = "Data Source=(local);database=KindOfDevice;" + "Integrated Security=SSPI;";
string queryString = "SELECT * FROM KindOfDevice;";

using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}

// Call Close when done reading.
reader.Close();
}

どこにSqlDataSourceがあるのでしょうか。
とりあえず、上記のconnectionStringと、お使いのSqlDataSourceのConnectionStringプロパティが
同じかどうかを調べてみてください。

SqlDataSourceからデータを取り出したいならSelectメソッドが有効ではないでしょうか。
戻り値の型が場合によって違うのですが、それも上記リンク先に書いてあります。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-05-07 10:26
お世話になります。

下記のようにすることで配列内に読み込まれていることがわかりました。
ありがとうございました。

DataView dv = (DataView)SqlDataSource2.Select(DataSourceSelectArguments.Empty);
int reorderedProducts = (int)dv.Table.Rows[0][0];
string bb = (string)dv.Table.Rows[0][1].ToString();

1

スキルアップ/キャリアアップ(JOB@IT)