显示AD​​O SQL连接中的Label.Text

时间:2015-03-26 17:26:20

标签: c# visual-studio-2012 ado

这最初是一个有两个部分的问题。 SQL问题和Visual Studio问题。我现在已将它分解为单独的问题,这是VS C#问题。

我想在某些label.text上使用visual studio显示值,并且遇到了一些问题。这是表单的图片以及当我尝试运行当前代码时会发生什么。

enter image description here enter image description here

这是我目前来自Form1.cs代码的c#代码:

public Form1()
{
    InitializeComponent();
}

private void Form1_Load_1(object sender, EventArgs e)
{
    string str = "Provider=SQLNCLI10;Server=Historian;Database=Runtime;User Id=sa;Password=Historian2015!!;";
    conn = new ADODB.Connection();
    conn.Open(str, "", "", -1);  // connection Open

    playTrend_Click_1(sender, e);

    Timer tmr = new Timer();
    tmr.Interval = 1000;//ticks every 1 second
    tmr.Tick += new EventHandler(tmr_Tick);
    tmr.Start();
}

private void tmr_Tick(object sender, EventArgs e)
{
    ADODB.Recordset rs = new ADODB.Recordset();
    sql = "SELECT TOP 2 [DateTime] ,[TagName] ,[Value] FROM [Runtime].[dbo].[v_StringHistory] WHERE [TagName] = 'ERecipeRunning' OR [TagName] = 'PRecipeRunning'";
    // RECORDSET OPEN
    rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockBatchOptimistic, 0);

    lbPCurrRecipeV.Text = rs.Fields[2].Value.ToString();
    lbECurrRecipeV.Text = rs.Fields[2].Value.ToString();
}

private void playTrend_Click_1(object sender, EventArgs e)
{
    var ccEa = System.Drawing.Color.FromArgb(0xff, 0x80, 0x00);
    var ccEb = System.Drawing.Color.FromArgb(0xff, 0xcb, 0x97);
    var ccPa = System.Drawing.Color.FromArgb(0x00, 0x80, 0xc0);
    var ccPb = System.Drawing.Color.FromArgb(0xb0, 0xe6, 0xff);

    lbPCurrRecipeV.ForeColor = ccPa;
    lbPCurrRecipeV.BackColor = ccPb;
    lbPCurrRecipeT.ForeColor = ccPb;
    lbPCurrRecipeT.BackColor = ccPa;

    lbECurrRecipeV.ForeColor = ccEa;
    lbECurrRecipeV.BackColor = ccEb;
    lbECurrRecipeT.ForeColor = ccEb;
    lbECurrRecipeT.BackColor = ccEa;
}

}

如何将各自的值输入相应的标签?在原始帖子中,他们建议我从ADODB切换到ADO.NET。有人对我如何引用sql值有任何想法吗?

1 个答案:

答案 0 :(得分:1)

看起来确实与我正在使用的ADODB连接有关。我找到了answer here。基本上,这是一个改变ADODB属性中的一些设置的问题。必须将Embed Interop Types更改为False,然后将Copy Local True设置为True。那让我筋疲力尽。

现在问题是修复我的sql字符串,我会很高兴。我打算明天调查使用ADO.net方法,就像你们建议的那样。

enter image description here