エラーが発生する次のコードがありますcannot apply indexing with [] to an expression of type object
protected void btnMakeCards_Click(object sender, EventArgs e)
{
string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;
using (var con = new SqlConnection(cs))
using (var cmd = new SqlCommand("spDrugCardGenerator", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach (var row in dt.Rows)
{
foreach (var col in dt.Columns)
{
Response.Write(row[col].ToString());
}
}
}
}
DataRow
との具象型を使用すると、このコードが正常にコンパイルされるのはなぜDataColumn
ですか? コンパイラは、using ステートメントでデータ型がどうあるべきかを推測できます。データ テーブルの処理はどうなっていますか?