0

多数のFormViewとSQLDataSourceを利用するプロジェクトがあります。SQLDataSourceのデフォルトの動作で、空の値をnullとして挿入したいと思います。パラメータごとに挿入パラメータを作成することでこれを実行できることはわかっていますが、空になる可能性のあるすべてのパラメータを更新および挿入するためにこれを実行する必要があるため、これは非常に古くなります。

<InsertParameters>
    <asp:Parameter Name="Name" ConvertEmptyStringToNull="true" />
</InsertParameters>

web.configまたはSQLDataSourceに設定できる設定はありますか?

4

3 に答える 3

1

私は常に Parameter や SqlDataSource から新しいクラスを派生させて、希望するデフォルトの動作を変更しています。

public class MyDataSource : SqlDataSource
{        
    public MyDataSource()
    {
        if (HttpContext.Current != null)
        {
            this.ConnectionString = MyCinfig.ConnectionString;
            SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
            CancelSelectOnNullParameter = false;

            this.Updated += new SqlDataSourceStatusEventHandler(NXSDataSource_iudExecuted);
            this.Inserted += new SqlDataSourceStatusEventHandler(NXSDataSource_iudExecuted);
            this.Deleted += new SqlDataSourceStatusEventHandler(NXSDataSource_iudExecuted);
        }
    }
}

パラメータ用

public class UserIDParameter : Parameter
{
    public UserIDParameter()
    {
        this.Name = "user_id";
        this.DbType = System.Data.DbType.Int32;
    }

    protected override object Evaluate(System.Web.HttpContext context, System.Web.UI.Control control)
    {
        return GetMyCurrentUserID();
    }
}
于 2009-09-25T15:27:21.867 に答える
-2

「選択」イベントをオーバーライドし、必要なものをすべて割り当てます

于 2009-09-25T15:17:18.827 に答える