私が変更している既存のクエリがあります。結果のデータは、DataSetとしてDataGridViewオブジェクトに直接プッシュされます。 datagridview要素にチェックボックスをもたらす複数のビットフィールドがあります。私はこの機能を模倣したいと思っていますが、私は特定のフィールドにCoalesceを使用する必要があります。 SQLを以下に示します:.NET Datagridviewのチェックボックスとして表示される結果のビット値を結合します
SELECT res_id
, res_resolution [Resolution]
, res_type [Res. Type]
, res_is_refund [Refund]
, res_ship_replacement_today [Ship Today]
, res_ship_replacement_after_return [Ship After Return]
, res_return_required [Ret. Req.]
, res_test [Test]
, res_menu_divider [Menu Div.]
, res_orderby [Menu Order]
, res_new_return [New Returns]
, res_process_return [Receive Returns]
, res_modified [Last Updated]
, res_active [Active]
, COALESCE(rra_is_mispull_error, 0) [Mispull]
FROM jfi_return_resolution
LEFT JOIN jfi_return_resolution_attribute rra ON rra.rra_res_id = res_id
ORDER BY res_orderby;
上記のクエリの結果は、機能的に正しいですが、これはクライアントの直面しているので、COALESCEは、1または0として表示され、私は、このチェックボックスにする必要があります。他のフィールド(res_is_refundなど)は、DataGridViewにチェックボックスとして正しく表示されます。
私は凝集機能をCOALESCE(rra_is_mispull_error,false) [Mispull]
に変更しようとしましたが、アプリケーションがクラッシュするだけです。すべてのCOALESCEを削除すると、1と0のように悪いヌルが発生します。あなたがいることを推測することができます
SqlDataAdapter SDA = new SqlDataAdapter();
DataSet ds = new DataSet();
Using(SqlConnection Conn ...)
{
conn.Open();
using(SqlCommand cmd = new SqlCommand(sql,conn))
{
SDA.SelectCommand = cmd;
SDA.Fill(ds);
}
}
MyDGV.DataSource = ds.Tables[0].DefaultView;
(それが簡単にフォーラムの投稿に譲渡するだろう形ではないので、擬似コードとして)
のDataGridViewにデータを転送するC#のは、このフォームでありますC#コードとSQLは実際にCoalesceの問題の外で正しく機能します。データベースでの列がBITである場合は
編集を気に入って、SQLのようなコードを作るいくつかの問題があった –
rra_is_mispull_errorのあなたのデータ型は? –
私のコメントは提出されませんでした。データ型は 'ビット' –