我正在尝试执行从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