共用方式為


Generator.OnGenerateNextValues 方法

根據資料產生演算法產生下一個值。

命名空間:  Microsoft.Data.Schema.Tools.DataGenerator
組件:  Microsoft.Data.Schema.Tools (在 Microsoft.Data.Schema.Tools.dll 中)

語法

'宣告
Protected Overridable Sub OnGenerateNextValues
protected virtual void OnGenerateNextValues()
protected:
virtual void OnGenerateNextValues()
abstract OnGenerateNextValues : unit -> unit 
override OnGenerateNextValues : unit -> unit 
protected function OnGenerateNextValues()

備註

當資料產生計劃執行時,OnGenerateNextValues 方法就會建立資料。 您必須覆寫此方法來提供邏輯,以便為資料產生器的輸出屬性產生資料。

GenerateNextValues 方法會呼叫這個方法。 若要修改 GenerateNextValues的功能,您必須覆寫 OnGenerateNextValues。

範例

這個範例會覆寫 OnGenerateNextValues 方法,以便針對資料產生器產生隨機資料。 這個程式碼範例是 Generator 類別完整範例的一部分。

DateTime mRandomDate;
Random mRandom;
Random mRandomRange;

protected override void OnGenerateNextValues()
{
    DateTime min;
    DateTime max;

    // Generate a random date from either range 1 or range 2.
    // Randomly select either range 1 or range 2 by randomly 
    // generating an odd or an even random number.
    if (mRandomRange.Next() % 2 == 0)  //check for odd or even
    {
        min = mRange1Min;
        max = mRange1Max;
    }
    else
    {
        min = mRange2Min;
        max = mRange2Max;
    }

    // The formula for creating a random number in a specific range is:
    // start of range + (size of range * random number between 0 and 1)

    // Size of range
    TimeSpan range = max - min;

    // (Size of range * random number between 0 and 1)
    TimeSpan randomNumber = new TimeSpan((long)(range.Ticks * mRandom.NextDouble()));

    // Start of range + (size of range * random number between 0 and 1)
    mRandomDate = min + randomNumber;
}
Dim mRandomDate As Date
Dim mRandom As Random
Dim mRandomRange As Random 

Protected Overrides Sub OnGenerateNextValues()
    Dim min As Date
    Dim max As Date

    ' Generate a random date from either range 1 or range 2.
    ' Randomly select either range 1 or range 2 by randomly 
    ' generating an odd or an even random number. 
    ' Check for odd or even
    If mRandomRange.Next() Mod 2 = 0 Then  
        min = mRange1Min
        max = mRange1Max
    Else
        min = mRange2Min
        max = mRange2Max
    End If

    ' The formula for creating a random number in a specific range is:
    ' start of range + (size of range * random number between 0 and 1)

    ' Size of range
    Dim range As TimeSpan = max - min

    ' (Size of range * random number between 0 and 1)
    Dim randomNumber As TimeSpan = _
        New TimeSpan(CLng(range.Ticks * mRandom.NextDouble()))

    ' Start of range + (size of range * random number between 0 and 1)
    mRandomDate = min + randomNumber

.NET Framework 安全性

請參閱

參考

Generator 類別

Microsoft.Data.Schema.Tools.DataGenerator 命名空間

GenerateNextValues