SQLにバインドされたグリッドビューがあります。一部の列にはビット値があります。C#を使用して値をグリッドビューに取り込むと、チェックボックスが表示されます。その列の値をテキストに抽出する必要があります。
SqlConnection sConnection = new SqlConnection(MyConnectionString);
SqlCommand sCommand = new SqlCommand();
using (sConnection)
{
sCommand.Connection = sConnection;
sCommand.CommandText = "MyStoredProcedure";
sCommand.CommandType = CommandType.StoredProcedure;
sCommand.Connection.Open();
SqlDataReader reader = sCommand.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
gridView.DataSource = reader;
gridView.DataBind();
}
for (int i = 0; i < gridView.Rows.Count; i++)
{
ListBox1.Items.Add(gridView.Rows[i].Cells[3].Text);
}
}
}
gridview列のデータ型は「ビット」です。データベースやストアドプロシージャにアクセスして、そこにあるものを変更することはできません。どういうわけか「0」または「1」の値を抽出する必要がありますが、上記のように抽出すると、テキストが空白になります。
また、「GetOrdinal」を使用してみました。データベースからTrue/False値が返されましたが、グリッドビューの各アイテムの値を取得する方法がわかりませんでした。
if (!reader.IsDBNull(reader.GetOrdinal("MyColumn1")))
{
ListBox1.Items.Add(reader.GetOrdinal("MyColumn1").ToString());
}