こんばんは。質問です
GridViewにIDを表示しているのですがこれを非表示にして値が取れるようにしたいのですがやり方が調べてもわかりません。
namespace
1 public partial class ToDo_control : System.Web.UI.Page 2 { 3 protected void Page_Load(object sender, EventArgs e) 4 { 5 if (!IsPostBack) 6 { 7 8 mitilyakusilu.Checked = true; 9 10 sikakari.Checked = true; 11 12 kanrilyou.Checked = true; 13 14 Dictionary<string, string> item = new Dictionary<string, string>(); 15 item["C01"] = "打合わせ"; 16 item["C02"] = "資料作成"; 17 item["C03"] = "プログラム"; 18 item["C04"] = "テスト"; 19 item["C05"] = "その他"; 20 item["C06"] = "プライベート"; 21 22 Ddl.DataSource = item; 23 Ddl.DataTextField = "Value"; 24 Ddl.DataValueField = "Key"; 25 Ddl.DataBind(); 26 Ddl.Items.Insert(0, ""); 27 28 29 DataTable dt = new DataTable(); 30 //空の DataTableを作成 31 dt.Columns.Add("Id", typeof(String)); 32 dt.Columns.Add("Staus", typeof(String)); 33 dt.Columns.Add("CategoryCode", typeof(String)); 34 dt.Columns.Add("StartDate", typeof(String)); 35 dt.Columns.Add("EndDate", typeof(String)); 36 dt.Columns.Add("ToDo", typeof(String)); 37 GridView.DataSource = dt; 38 GridView.DataBind(); 39 } 40 } 41 42 protected void Registration_Click(object sender, EventArgs e) 43 { 44 Response.Redirect("ToDo_Editing.aspx"); 45 } 46 47 protected void Editing_Click(object sender, EventArgs e) 48 { 49 Response.Redirect("ToDo_Editing.aspx"); 50 } 51 52 protected void search_Click(object sender, EventArgs e) 53 { 54 string connectionString = ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString; 55 56 using (var connection = new SqlConnection(connectionString)) 57 using (var command = connection.CreateCommand()) 58 { 59 try 60 { 61 62 //データベースの接続開始 63 connection.Open(); 64 65 //実行するSQLの準備 66 String sql = @"SELECT ID,Status,CategoryCode,Code,Name,ToDo,StartDate,EndDate, 67 Checked = CASE Status 68 WHEN '1' THEN '未着手' 69 WHEN '2' THEN '仕掛' 70 WHEN '3' THEN '完了' 71 END 72 FROM ToDoYamamoto INNER JOIN CategoryYamamoto 73 ON ToDoYamamoto.CategoryCode = CategoryYamamoto.Code 74 WHERE 1 = 1"; 75 //未着手のチェックボックスにチェックが入っているか 76 bool flg = true; 77 if (mitilyakusilu.Checked) 78 { 79 sql = sql + " AND Status = '1' "; 80 flg = false; 81 } 82 83 //仕掛のチェックボックスにチェックが入っているとき 84 if (sikakari.Checked) 85 { 86 87 if(flg == true) 88 { 89 sql += " AND"; 90 } 91 else 92 { 93 sql += " OR"; 94 } 95 sql += " Status = '2'"; 96 flg = false; 97 } 98 99 //完了のチェックボックスにチェックが入っているとき 100 if (kanrilyou.Checked) 101 { 102 103 if(flg == true) 104 { 105 sql += " AND"; 106 } 107 else 108 { 109 sql += " OR"; 110 } 111 sql += " Status = '3'"; 112 flg = false; 113 } 114 115 //カテゴリが選択されているとき 116 if (Ddl.SelectedValue != "") 117 { 118 sql = sql + " AND CategoryCode = @CategoryCode"; 119 command.Parameters.Add(new SqlParameter("@CategoryCode", Ddl.SelectedValue)); 120 } 121 122 //開始予定日が入力されているとき 123 if (StartFrom.Text != "") 124 { 125 sql = sql + " AND StartDate >= @StartFrom"; 126 command.Parameters.Add(new SqlParameter("@StartFrom", StartFrom.Text)); 127 } 128 129 //開始予定日が入力されているとき 130 if (StartTo.Text != "") 131 { 132 sql = sql + " AND StartDate <= @StartTo"; 133 command.Parameters.Add(new SqlParameter("@StartTo", StartTo.Text)); 134 } 135 136 //完了予定日が入力されているとき 137 if (CompletionFrom.Text != "") 138 { 139 sql = sql + " AND EndDate >= @CompletionFrom"; 140 command.Parameters.Add(new SqlParameter("@CompletionFrom", CompletionFrom.Text)); 141 } 142 143 //完了予定日が入力されているとき 144 if (CompletionTo.Text != "") 145 { 146 sql = sql + " AND EndDate<= @CompletionTo"; 147 command.Parameters.Add(new SqlParameter("@CompletionTo", CompletionFrom.Text)); 148 } 149 150 sql = sql + " ORDER BY Status, CategoryCode, StartDate, EndDate, ToDo"; 151 //実行 152 command.CommandText = sql; 153 154 155 var adapter = new SqlDataAdapter(command); 156 157 //取得結果を格納する 158 var table = new DataTable(); 159 160 //データの取得 161 adapter.Fill(table); 162 163 GridView.DataSource = table; 164 GridView.DataBind(); 165 } 166 167 finally 168 { 169 //データベースの接続終了 170 connection.Close(); 171 } 172 } 173 } 174 175 } 176} 177コード
ボールドテキスト誰w コードはコードブロックを使って下さい。(今からでも修正可能です)
質問内容に関係ないコードが多々アップされてますが、関係ない部分は削除してください。他人に見てもらうために、見やすくするという配慮をお願いします。
また、何の値を取るのか不明です。きちんと書いてください。一度 https://teratail.com/help/question-tips を読むことをお勧めします。それにも書いてありますが "人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです" が不十分です。なので、今は "何がわからないかわからない人から質問を受けても、答える側も困ってしまいます" という状況です。
DBから追加された順に連番が振られていてGridViewのIDというカラムに表示しているのですがそのIDを非表示にしても値が取れるようにしたいです。GridViewのプロパティから非表示にすると値も取れなくなると聞きました。
必要のないコードは削除してほしいとお願いしているのにそれはやる気なしですか? 質問者さんの言われる「値を取る」というのが私には意味不明なのですが、そこをきちんと説明していただけないのですか?
お願いしたことにはきちんと対応していただけないと、こちらも対応が難しいことをご理解ください。
すみません、対応してないつもりはないのですが、必要の無いコードがどこかわからなくて・・・
じゃあ、もう、コードの削除はいいので、質問者さんの言われる「値を取る」というのがどういう意味かをきちんと書いてください。すみませんが、自分は技術的な話以前に、日本語として理解できないです。
困らしてしまいすいません、現在DBにあるデータをGridViewに表示しているのですがIDが追加された順番に連番を振ってくれるように設定しています。そのIDをGridViewに表示したときこれを非表示にしたいのです。しかしGridViewで非表示にすると値を参照することが出来なくなるので値が参照できる状態で非表示にする方法があるらしいのですがそのやり方がわからない状態です
「IDが追加された順番に連番を振ってくれるように設定」⇒「SQL Server のテーブルで ID は int 型 IDENTITY の主キー」、「IDをGridViewに表示したときこれを非表示にしたい」⇒「ID は GridView に表示したくない」、「GridViewで非表示にすると値を参照することが出来なくなる」⇒「ID がないと Update, Delete ができない」・・・と言ってます?
はい、そのとおりです。わかり辛くてすみません
そもそも今回アップされたコードでは ID を表示しても Update, Delete はできないのでは? そこもあわせて全面的に見直したいということ?
別のページに遷移してその遷移先でUPdateするようにしようとしています
ますます意味不明です。それを具体的にどのように行うのか詳しく、あなたの状況は何も知らない第三者が読んで理解できるように、書いてください。あなたの質問は全くの説明不足ということを認識してください。
すみません、今回は質問を取り下げ考えがまとまってからまた質問しようと思います。
ここまで回答者・閲覧者に考えさせておいて質問を取り下げようというのですか? 回答者・閲覧者があなたの質問を考えるのに費やした労力をどう思っているのですか?
本当に、申し訳ございません
回答2件
あなたの回答
tips
プレビュー