0
 public  class MessageManager
    {
      public const string FLDMessageID = "MessageID";
      public const string FLDMessageText = "MessageText";
      private string GetPath
      {
          get
          {
              return Environment.CurrentDirectory + @"\MessageList.xml";
          }
      }

      private DataTable BuilDadataTable()
        {
            DataTable dtb = new DataTable("MessageList");
            DataColumn clmn = new DataColumn("MessageID", typeof(System.Int32));
            dtb.Columns.Add(clmn);
            clmn = new DataColumn("MessageText", typeof(System.String));
            dtb.Columns.Add(clmn);
            return dtb;
        }
        public DataSet GetMessageStructure()
        {
            DataSet ds = new DataSet();
            ds.Tables.Add(BuilDadataTable());
            return ds;
        }
        public DataSet GetMessageListDS()
        {
            DataSet ds = null;
            if (System.IO.File.Exists(GetPath))
            {
                ds = new DataSet();
                ds.ReadXml(GetPath);
            }
            else
            {
                ds= GetMessageStructure();
            }
            return ds;
        }
        public void AddMessage(int MessageID, string MessageText)
        {
            DataSet ds = GetMessageListDS();
            DataRow dr = ds.Tables[0].NewRow();
            dr[FLDMessageID] = MessageID;
            dr[FLDMessageText] = MessageText;
            ds.Tables[0].Rows.Add(dr);
            ds.WriteXml(this.GetPath);
        }
        public string GetMessage(int MessageID)
        {
            DataSet ds = GetMessageListDS();
            string Result = "Invalid XML Error List";
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count != 0)
            {
                DataRow[] drs = ds.Tables[0].Select("MessageID=" + MessageID.ToString()) ;
                if (drs.Length > 0)
                    if(drs[0].ItemArray[1] !=DBNull.Value)
                    Result = drs[0].ItemArray[1].ToString();
            }
            return Result;

        }
    }

I have a xml file for manage message in my application.a class that called messageManager is responsible of create xml file if not exists or read it into a table in application. each entity in xml file have two element 1-MessageID 2-MessageText. after add a meggage we can get a specified message by its id.

Problem:
Adding and getting message with id less than 10 dont have any problem but when i add a message id with id mor than 9 getmessage() can not find it? help please?

4

1 に答える 1

0

として変換して比較してみてください

DataRow[] drs = ds.Tables[0].Select("Convert(MessageID, 'System.String') = '"+MessageID.ToString()+"'");
于 2012-06-17T08:10:03.550 に答える