【セル型】チェックボックス型セルを設定するとSQL Server のBit型データを更新できない

文書番号 : 23066     文書種別 : 不具合     最終更新日 : 2006/11/11
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
チェックボックス型セルを設定するとSQL Server のBit型データの更新で失敗します。
この現象はVS2005のSqlDataSourceを使用したデータ連結で発生します。


[再現手順]
1. SQL Server 2005 に下記のSQLでテスト用テーブルを作成する。
-------------- from here ---------------------
CREATE TABLE testbit
(
  empid        INT PRIMARY KEY,
  ename        CHAR(20),
  ismale        BIT
)

INSERT INTO testbit values(1,'Yamada',0)

INSERT INTO testbit values(2,'Miyamoto',1)

INSERT INTO testbit values(3,'Ito',1)
-------------- end here ---------------------

2. VS2005 でWebSiteを作成する。

3. WebフォームにSQLDataSource コントロールを配置し、1番で作成したテーブルに接続する。

4. SPREADを配置し、このSQLDataSourceを連結する。
  --- 3列目には自動的にチェックボックス型が設定される。

5. 実行.

6. チェックボックスをチェックして「更新」ボタンを押す。
  --- 更新に失敗し、セルにはツールチップで"true or false"とエラーが表示される。
回避方法
2007/09/05版で修正済み。

2007/09/05版より前のバージョンでは次の回避方法が有効です。

●回避方法●

チェックボックス型セルのサブクラスを作成し、データモデルをBoolean値で更新する。
※この場合、SPREADへのデータ連結およびセル型の設定をコーディングで行って下さい。

●サンプルコード●

--------------------------
Webフォームクラス
--------------------------
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If IsPostBack Then Return

    'データ連結
    FpSpread1.DataSourceID = SqlDataSource1.ID
    'アプリケーション側でセル型を設定
    FpSpread1.Sheets(0).DataAutoCellTypes = False
    'カスタムチェック型を設定
    FpSpread1.Sheets(0).Columns(2).CellType = New MyCheckType
    
  End Sub

--------------------------
カスタムチェック型セル
--------------------------
<Serializable()> Public Class MyCheckType
  Inherits FarPoint.Web.Spread.CheckBoxCellType

  Public Overrides Function Parse(ByVal s As String) As Object
    'データモデルをBoolean型で更新する
    Return Boolean.Parse(s)
  End Function

End Class
キーワード
SPRN05897

この文書は、以前は次のバグレポートIDで公開されていました : 6598