我想从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