前提
PCはwindows11、
データベースの管理にpgadmin4、
コードの作成にVisual Studio 2022を使用しています。
実現したいこと
asp.net mvcにてNpgsqlを使用して、pgadmin4で作成したデータベースに接続して値を取得したいです。
発生している問題・エラーメッセージ
SELECT文で取得した値を food_nm という変数に代入し、それをViewData["food"]に代入しようとしたところ、
CS0103 現在のコンテキストに'food_nm'という名前は存在しません
とエラーが表示されてしまいました。
該当のソースコード
public void sql_test(int food_number) { string ip_address = "127.0.0.1"; string port = "5432"; string user_id = "postgres"; string password = "pgadmin4のパスワード"; string db_name = "データベース名"; string constr = @"Server = " + ip_address + ";Port = " + port + ";Username = " + user_id + ";Password = " + password + ";Database = " + db_name; NpgsqlConnection conn = new NpgsqlConnection(constr); conn.Open(); string sql = @"SELECT food FROM test-table WHERE number = '" + food_number + "'"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); using (NpgsqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { string food_nm = dr["food"] == DBNull.Value ? string.Empty : (string)dr["food"]; } } ViewData["food"] = food_nm; conn.Close(); }
試したこと
mvcやnpgsqlには触り始めたばかりなので、いまいちどこが間違っているのか見当が付けられなかったので質問させていただきました。エラーの原因となっている個所を教えていただきたいです。
補足情報(FW/ツールのバージョンなど)



回答2件
あなたの回答
tips
プレビュー