2015-03-26 1 views
0

Первоначально это был один вопрос с двумя частями. Проблема SQL и проблема с Visual Studio. Теперь я разбил его на отдельные вопросы, и это проблема с VS C#.Показать Label.Text из ADO SQL Connection

Я хочу отображать значения с помощью visual studio на некоторых ярлыках.text, и я сталкиваюсь с некоторыми проблемами. Вот изображение формы и что происходит, когда я пытаюсь запустить мой текущий код.

enter image description here enter image description here

Вот мой текущий код C# из кода Form1.cs:

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?

+0

Что такое ADODB? :) – Biscuits

ответ

1

Похоже, что в действительности было связано с подключением ADODB, которое я использовал. Я нашел answer here. В основном, это было связано с изменением некоторых настроек в свойствах ADODB. Пришлось изменить Embed Interop Types на False, а затем сделать Copy Local True. Это укрепило меня.

Теперь это вопрос фиксации моей строки sql, и я буду в порядке. И я планирую исследовать с использованием методов ADO.net завтра, как вы, ребята, предложили.

enter image description here