ADO.NETで列の桁数を得る方法
たとえば、10ケタで小数点以下が2ケタの数値列の情報を得るには下記のようにする。
SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; // コネクション cmd.CommandText = "SELECT cast(1.234 as numeric(10,2)) [v]"; SqlDataReader rd= cmd.ExecuteReader(CommandBehavior.KeyInfo); DataTable sc = rd.GetSchemaTable();
すると、scは以下のようになる。ちゃんと10と2がある。
同じことを非接続のdataTableでもやりたかったのだが、できなかった。DataTableからはSqlDataReader のオブジェクトを作れない。
SqlDataAdapter ad = new SqlDataAdapter(); ad.SelectCommand = cmd; DataTable dt = new DataTable(); ad.Fill(dt); DataTableReader rd = dt.CreateDataReader(); DataTable sc = rd.GetSchemaTable();
うまい方法はないものかしら。
コメント
コメントを投稿