在Teradata .Net C#中执行宏



我正在尝试执行从teradata到我的.NET网站的宏观/存储的proc。

我的CS代码看起来像这样 -

 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仅返回一个值,而不返回一个行。以上代码失败。我怀疑我需要将值插入数据集中,但我不知道Teradata语法

编辑 - 以上代码失败 - 视觉工作室在Chrome上执行时会悬挂。关闭Chrome后,它突出显示了CMD(编辑器中的代码),并一直悬挂直到武力关闭。

我是Teradata和此TD指南页面的引用.NET开发人员指南

im确定您正在使用reader.Read()错误。根据您的帮助链接(https://developer.teradata.com/doc/connectivitivitive/tdnetdp/16.20/help/teradata.client.provider.provider.provider.provider.client.provider.provider.tddatatareader.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);
}

这基本上与默认数据标准:https://lealen.microsoft.com/en-us/dotnet/framework/data/data/adonet/retrieving-data-using-data-using-a-using-a-a-a-a-datareader

最新更新