如题。

解决方案 »

  1.   

    数据应该没有关系的吧,都一样的。  我原来的代码,需要改动一下。
    /// <summary>
            /// 将DataTable中数据写入数据库中
            /// </summary>
            /// <param name="dt"></param>
            /// <returns></returns>
            public static bool WriteDataToDB(DataTable dt)
            {
                if (dt==null || dt.Rows.Count == 0)
                {
                    return true;
                }
                string tname = dt.TableName;
                string colNames = "";
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    colNames += dt.Columns[i].ColumnName + ",";
                }
                colNames = colNames.TrimEnd(',');
                string cmd = "";
                string colValues;
                string cmdmode = string.Format("insert into {0}({1}) values({{0}});", tname, colNames);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    colValues = "";
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (dt.Rows[i][j].GetType() == typeof(DBNull))
                        {
                            colValues += "NULL,";
                            continue;
                        }
                        if (dt.Columns[j].DataType == typeof(string))
                            colValues += string.Format("'{0}',", dt.Rows[i][j]);
                        else if (dt.Columns[j].DataType == typeof(int) || dt.Columns[j].DataType == typeof(float) || dt.Columns[j].DataType == typeof(double))
                        {
                            colValues += string.Format("{0},", dt.Rows[i][j]);
                        }
                        else if (dt.Columns[j].DataType == typeof(DateTime))
                        {
                            colValues += string.Format("cast('{0}' as datetime),", dt.Rows[i][j]);
                        }
                        else if (dt.Columns[j].DataType == typeof(bool))
                        {
                            colValues += string.Format("{0},", dt.Rows[i][j].ToString());
                        }
                        else
                            colValues += string.Format("'{0}',", dt.Rows[i][j]);
                    }
                    cmd = string.Format(cmdmode, colValues.TrimEnd(','));
                }
                int ret = 0;
                try
                {
                    ret = DbHelperSQL.ExecuteSql(cmd);
                }
                catch (Exception e)
                {
                    //写错误日志...
                    string strOuput = string.Format("向数据库中写数据失败,错误信息:{0},异常{1}\n", e.Message, e.InnerException);
                    //将信息写入到日志输出文件
                    DllComm.TP_WriteAppLogFileEx(DllComm.g_AppLogFileName, strOuput);
                    
                }
                if (ret == -1)
                {
                    return false;
                }
                return true;
                
            }
            /// <summary>
            /// 写入基础数据,并删除其中的重复的项目
            /// </summary>
            /// <param name="dt"></param>
            /// <param name="KeyName">主键</param>
            /// <param name="icol">主键所在的列</param>
            /// <returns></returns>
            public static bool WriteDataToDB(DataTable dt, string KeyName, int icol)
            {
                //删除数据库中的重复项目
                string mKeyStr = "";
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    mKeyStr += "'" + dt.Rows[i][icol] + "',";
                }
                mKeyStr = mKeyStr.Trim(',');
                string sqlStr = "Delete  from  " + dt.TableName + " where " + KeyName + " in (" + mKeyStr + ")";
                DbHelperSQL.ExecuteSql(sqlStr);
                //向数据库中写入新的数据
                string tname = dt.TableName;
                string colNames = "";
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    colNames += dt.Columns[i].ColumnName + ",";
                }
                colNames = colNames + "CreateDate ";
                string cmd = "";
                string colValues;
                string cmdmode = string.Format("insert into {0}({1}) values({{0}});", tname, colNames);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    colValues = "";
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (dt.Rows[i][j].GetType() == typeof(DBNull))
                        {
                            colValues += "NULL,";
                            continue;
                        }
                        if (dt.Columns[j].DataType == typeof(string))
                        {
                            colValues += string.Format("'{0}',", dt.Rows[i][j]);
                        }
                        else if (dt.Columns[j].DataType == typeof(int) || dt.Columns[j].DataType == typeof(float) || dt.Columns[j].DataType == typeof(double))
                        {
                            colValues += string.Format("{0},", dt.Rows[i][j]);
                        }
                        else if (dt.Columns[j].DataType == typeof(DateTime))
                        {
                            colValues += string.Format("cast('{0}' as datetime),", dt.Rows[i][j]);
                        }
                        else if (dt.Columns[j].DataType == typeof(bool))
                        {
                            colValues += string.Format("{0},", dt.Rows[i][j].ToString());
                        }
                        else
                            colValues += string.Format("'{0}',", dt.Rows[i][j]);
                    }
                    colValues += "getdate()";
                    cmd = string.Format(cmdmode, colValues);
                    int ret = 0;
                    try
                    {
                        ret = DbHelperSQL.ExecuteSql(cmd);
                    }
                    catch (Exception e)
                    {
                        //写错误日志...
                        string strOuput = string.Format("向数据库中写数据失败,错误信息:{0},异常{1}\n", e.Message, e.InnerException);
                        //将信息写入到日志输出文件
                        DllComm.TP_WriteAppLogFileEx(DllComm.g_AppLogFileName, strOuput);
                    
                    }
                    if (ret == -1)
                    {
                        return false;
                    }
                }
                return true;
            }
      

  2.   

      1楼我没看懂  这个是mysql 还是sqlserver啊 还有你这没有连接mysql吧。。 初学者 请教了 
      

  3.   

    还有这个 DbHelperSQL类是?