2016-09-22 13 views
-1

化学物質の有効期限が切れるまでの日数をユーザーに通知するリマインダを作成しようとしています。 ForEachループを使用してデータベース内のデータを取得しようとしていますが、構文を正しく取得できません。何らかの理由で vb.netのmysqlデータベースの各ループについて

For Each chemicalName as DataRow In chemicalinventory.Rows

、エラー:名 ' chemicalinventory' 宣言されていないが飛び出る続けます。

私はオンラインで見たものから、それはテーブル名であるはずです。それを間違ってコーディングしていますか?何が間違っているのか分かっていれば答えてください。

+0

ここで、変数「chemicalinventory」を宣言していますか?あなたがそれを宣言したことがないなら、宣言されていない理由を説明します。 – David

+0

@David 'chemicalinventory'は、mysqlデータベース内のテーブルの名前です。それを変数として宣言する方法はありますか?私はテーブルの各データを調べようとしています。 – Lucynda

+2

あなたが探しているのは、.NETでデータベースとやり取りする方法に関するチュートリアルです。アプリケーションコードとデータベースは完全に別のエンティティです。単にデータベーステーブルを変数として参照することはできず、コードがそのテーブルの検索方法を知っていると期待することはできません。 – David

答えて

1

この方法でテーブルのクエリを直接開始することはできません。データベーステーブルからデータを選択し、それを使用してDataTableを入力する必要があります。その後、このDataTableの行をループして、後で何かを得ることができます。

これを実行する方法はたくさんありますが、ここでは非常に基本的な設定です.Web.Configに接続文字列を指定し、SQLクエリを必要に応じて変更する必要があります。

Dim sqlConnection1 As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("YOUR_CONNECTION_STRING").ConnectionString) 
Dim cmd As New SqlCommand 
cmd.CommandType = Data.CommandType.Text 
cmd.CommandText = "SELECT * FROM chemicals" 
cmd.Connection = sqlConnection1 

Dim DataAdapter As New SqlDataAdapter 
DataAdapter.SelectCommand = cmd 

Dim chemicalInventory As New DataTable() 
DataAdapter.Fill(chemicalInventory) 

For each row as DataRow in chemicalInventory.rows 
    Response.write(row.item("column_name")) 
Next 
関連する問題