定義哈西表
string sql = "select yearly,monthly,buid,category,accno  from setFssForecast where yearly=" + yearly 
+ " and category='" + category + "' and version='" + version + "'";

CommClass.PubFunction func = new CommClass.PubFunction();
System.Data.DataSet ds=new DataSet();
ds=func.GetDataTable(sql);
if (ds.Tables[0].Rows.Count>0)
{
for (int i=0 ;i<ds.Tables[0].Rows.Count;i++)
{
string [] dkey={ds.Tables[0].Rows[i][0].ToString().Trim(),ds.Tables[0].Rows[i][1].ToString().Trim(),ds.Tables[0].Rows[i][2].ToString().Trim(),
ds.Tables[0].Rows[i][3].ToString().Trim() ,ds.Tables[0].Rows[i][4].ToString().Trim()};
string dvalue="";
if ((string)ht[dkey]==null)
{
ht.Add(dkey,dvalue);
}
}
}後來查找哈西表 string[] dkey={yearly.ToString().Trim(),monthly.ToString().Trim(),buid.ToString().Trim(),CateGory.Trim(),accno.Trim()};

string tmp2=(string)hs_FssForeCast[dkey];
if (tmp2==null)
{
sb.Append(" insert " );
}
else
{
sb.Append("update");
}發現問題:
dkey確定在哈希表內存在,但是無法查找到,每次都是執行sb.Append(" insert " );
不知道是出現什麼問題???

解决方案 »

  1.   

    Hashtable hs = new Hashtable(); 
    Int16 i; 
    int j=1;
    string[] arr1 = new string[3]; 
    arr1[0] = System.Convert.ToString(j * 10); 
    arr1[1] = System.Convert.ToString(j * 100); 
    arr1[2] = System.Convert.ToString(j * 1000);  for ( i = 1; i <= 3; i++) 

    string[] arr = new string[3]; 
    arr[0] = System.Convert.ToString(i * 10); 
    arr[1] = System.Convert.ToString(i * 100); 
    arr[2] = System.Convert.ToString(i * 1000); 
    hs.Add(arr, i); 

    string ret = (string)hs[arr1];vb轉換過來的代碼,vb通過。但是c#出現問題同上面一樣
      

  2.   

    string sql = "select yearly,monthly,buid,category,accno  from setFssForecast where yearly=" + yearly 
    + " and category='" + category + "' and version='" + version + "'";CommClass.PubFunction func = new CommClass.PubFunction();
    System.Data.DataSet ds=new DataSet();
    ds=func.GetDataTable(sql);
    if (ds.Tables[0].Rows.Count>0)
    {
    for (int i=0 ;i<ds.Tables[0].Rows.Count;i++)
    {
    string dkey=ds.Tables[0].Rows[i][0].ToString().Trim()+ds.Tables[0].Rows[i][1].ToString().Trim()+ds.Tables[0].Rows[i][2].ToString().Trim()+
    ds.Tables[0].Rows[i][3].ToString().Trim()+ds.Tables[0].Rows[i][4].ToString().Trim();
    string dvalue="";
    if ((string)ht[dkey]==null)
    {
    ht.Add(dkey,dvalue);
    }
    }
    }後來查找哈西表string dkey=yearly.ToString().Trim()=monthly.ToString().Trim()=buid.ToString().Trim()=CateGory.Trim(),accno.Trim();string tmp2=(string)hs_FssForeCast[dkey];