看看你的XML文件和提取数据的代码!!!

解决方案 »

  1.   

    代码如下,xml文件是UTF-8编码:
    public void SaveToDb()
    {
    try
    {
    string T7InfoFile = this.mFilePath + "T7Info.xml";
    myConnectionString = "Database=t7info;Data Source=localhost;User Id=root;Password="; MySqlConnection myConnection = new MySqlConnection(myConnectionString);
    MySqlCommand myCommand = new MySqlCommand();
    myCommand.Connection = myConnection;
    myConnection.Open();
    myCommand.CommandText = "DELETE FROM `t7info`";
    myCommand.ExecuteNonQuery();
    DataSet ds = new DataSet();
    ds.ReadXml(T7InfoFile,XmlReadMode.ReadSchema);
    DataView dv = ds.Tables[0].DefaultView; foreach(DataRowView drv in dv)
    {
    string myInsertQuery = "INSERT INTO t7info (City,Date,Content) Values('" + UTF82GB2312(drv["City"].ToString()) + "', '" + drv["Date"].ToString() + "', '" + UTF82GB2312(drv["Content"].ToString()) + "')";
    myCommand.CommandText = myInsertQuery;
    myCommand.ExecuteNonQuery();
    }
    myCommand.Connection.Close();
    }
    catch(Exception x)
    {
    throw x;
    }
    }private string UTF82GB2312(string str)
    {
    Encoding e1 = Encoding.UTF8;
    Encoding e2 = Encoding.GetEncoding("gb2312"); 
    string str2 = e2.GetString(Encoding.Convert(e1,e2,e1.GetBytes(str)));
    return str2;
    }
      

  2.   

    你的XML文件首行声明是不是<?xml version="1.0" encoding="utf-8"?>如果是的话改为<?xml version="1.0" encoding="gb2312"?>试一下。改了之后不要用UTF82GB2312函数,直接读取插入数据库!!!
      

  3.   

    编码的问题,gb2312和utf-8改改看看。