我想從VB6轉換爲C#的行,我很難做到這一點。從VB6 C#轉換 - 記錄集
VB6代碼:
txtFields(4).Text = rsGroup.Fields(0).Value + 1
C#(我至今)
txtFields4.Text = (rsGroup.Fields[0].Value) +1);
什麼是做這種正確的方法是什麼?
我想從VB6轉換爲C#的行,我很難做到這一點。從VB6 C#轉換 - 記錄集
VB6代碼:
txtFields(4).Text = rsGroup.Fields(0).Value + 1
C#(我至今)
txtFields4.Text = (rsGroup.Fields[0].Value) +1);
什麼是做這種正確的方法是什麼?
我不會使用RecordSet,而是使用DataSet。 您可以使用System.Data.SqlClient命名空間來訪問數據庫,然後您可以綁定來自DataSet的控件,使生活變得更加輕鬆,同時我也避免直接複製VB6中的代碼。在C#世界中有很多新事物,你永遠不會有選擇在VB6中使用的選擇。
嗨,Robbie,我正在考慮使用數據集解決方案。我會研究它 - 我猜這裏真正的困難是我沒有C#知識....只有java - 我的經理要求我對舊的數據庫比較工具進行轉換。 – jdurman 2011-05-13 00:39:52
txtFields[4].Text = rsGroup.Fields[0].Value + 1;
嗨enamrik,rsGroup的C#類型是一個ADODB.Recordset。 – jdurman 2011-05-13 00:41:39
@jdurman,
使用DataSet是檢索數據的一個例子:
public DataSet GetDate(string SqlString)
{
SqlConnection sqlConn = new SqlConnection("CONNECTION STRING GOES HERE");
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, sqlConn);
adapter.Fill(ds);
return ds;
}
public void LoopThroughDataExample(DataSet ds)
{
foreach(DataTable dt in ds)
{
foreach(DataRow dr in dt)
{
Console.WriteLine(String.Format("Value is: {0}", dr["DBColumnName"])); // Replace DBColumnName with the name of columns in the Database Table that you want to Extract.
}
}
}
感謝您的幫助Robbie,太棒了!我對此有一個主要擔憂,我使用這個程序的數據庫不是主流的(SQL/MSAccess等),它是HABITAT(http://www.ponge.com/telechargements/habitat.pdf) - 我認爲我會盡可能地嘗試轉換,然後瞭解如何使用棲息地.dll來訪問數據庫。 – jdurman 2011-05-15 23:16:25
中有什麼具體的例子難度? – Oded 2011-05-12 06:12:41
您的C#示例最後有一個額外的括號。此外,你的VB代碼有一個文本字段數組,你正在訪問索引4的文本字段,而你的C#有一個名爲txtField4的文本字段。那是故意的嗎?我很好奇,對象rsGroup的C#類型是什麼? – enamrik 2011-05-12 06:18:30
什麼類型是'價值'?你是否試圖給一個字符串添加一個整數,或者你是否添加了2個整數並將它們放入一個字符串屬性中? – 2011-05-12 06:24:08