2017-12-14 27 views
0

Teradataからmy .NetのWebサイトにマクロ/ストアドプロシージャを実行しようとしています。Teradataでマクロを実行しています.net C#

public void Page_Load(object sender, EventArgs e) 
    { 

     TdConnectionStringBuilder connectionStringBuilder = new TdConnectionStringBuilder(); 
     connectionStringBuilder.DataSource = "URL"; 
     connectionStringBuilder.Database = "DB"; 
     connectionStringBuilder.UserId = "USERNAME"; 
     connectionStringBuilder.Password = "PASSWORD"; 
     connectionStringBuilder.AuthenticationMechanism = "LDAP"; 

     using (TdConnection cn = new TdConnection()) 
     { 
      cn.ConnectionString = connectionStringBuilder.ConnectionString; 
      cn.Open(); 

      TdCommand cmd = cn.CreateCommand(); 
      cmd.CommandText = "EXEC DB.TEST"; 


      using (TdDataReader reader = cmd.ExecuteReader()) 
      { 

       MeanTime.Text = "Value is " + reader.Read(); 
      } 
     } 

    } 

私の他の試みであった

cmd.CommandText = "EXEC TMP_WORK_DB.SH_TEST"; 
string scalar = (string)cmd.executescalar(); 
meantime.text = scalar; 

マイHTML側

<asp:Label ID="MeanTime" runat="server" Text="MeanTime"></asp:Label> 

マクロDB.TEST戻っただ一つの値ではなく -

私のCSコードは次のようになります行。 上記のコードは失敗します。値をデータセットに挿入する必要があると思われますが、Teradata構文についてはわかりません。

EDIT - 上記のコードは失敗します。 Chromeで実行するとVisual Studioがハングします。 Chromeを終了すると、CMD(エディタ内のコード)が強調表示され、強制終了するまでハングアップします。

私は.Net Developer Guide for Teradataを参照していますし、このTD Guide page

+0

_ _「上記のコードが失敗します」それがどのように失敗するのか、それを解決しようとしたことを説明してください。 – CodeCaster

答えて

0

イムかなり確信して、あなたは間違っreader.Read()を使用しています。あなたの助けのリンク(https://developer.teradata.com/doc/connectivity/tdnetdp/16.20/help/Teradata.Client.Provider~Teradata.Client.Provider.TdDataReader.html)によると、それは次のようになります。

var reader = cmd.ExecuteReader(); 
while(reader.Read()) 
{ 
    //assuming you have only one column and one row. 
    //otherwise it would overwrite your Text property with the next 
    //row in line 
    MeanTime.Text = "Value is " + reader.GetValue(0); 
} 

これは基本的にはデフォルトのDataReaderと同じ用法及び動作です: - [尋ねる]読み、https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/retrieving-data-using-a-datareader

+0

Teradata.Client.Provider.TdExceptionを取得しています: '外部コンポーネントが例外をスローしました。' on var reader = cmd.ExecuteReader(); –

関連する問題