using DevExpress.Xpo; using System; using System.Data; namespace AFKAbutment { public static class DatabaseFormatJudgment { /// /// 判断输入的字符串是否可以转换成数值类型 /// /// /// public static bool IsNumberic(string str) { double vsNum; bool isNum; isNum = double.TryParse(str, System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out vsNum); if (string.IsNullOrWhiteSpace(str)) isNum = false; return isNum; } /// /// 说明:SQLQuery验证 /// 创建人: /// 创建日期: /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// 数据库的表格属性表 /// 列名 /// 值 /// public static string SQLQueryVerification(DataTable TableProperties, string fieldKey, string fieldValue,string Comment = null) { if (TableProperties.Rows.Count == 0) return ""; DataRow[] ListOfAttributes = TableProperties.Select("COLUMN_NAME='" + fieldKey + "'");//指定列的数据库属性 if (ListOfAttributes == null || ListOfAttributes.Length == 0) return ""; string saveErrorMessage = string.Empty; int MaxInputLength = 0;//最大长度 //判断长度是否超出 //if (ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("varchar")) //{ // if (int.Parse(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"].ToString()) == -1) // { // ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] = 8000; // } // MaxInputLength = System.Text.Encoding.Default.GetBytes(fieldValue).Length; //} //else if (ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("nvarchar")) //{ // if (int.Parse(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"].ToString()) == -1) // { // ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] = 4000; // } // MaxInputLength = fieldValue.Length; //} //if (!string.IsNullOrWhiteSpace(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] + "") && IsNumberic(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] + "") && int.Parse(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"].ToString()) < MaxInputLength) //{ // saveErrorMessage = saveErrorMessage + fieldKey + ": 输入内容长度超出限制;\r\n"; //} //判断属性是否正确 //if ((ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("int") || ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("decimal")) && !IsNumberic((row[col.ColumnName] + "").Replace("'", "''")) && !string.IsNullOrWhiteSpace((row[col.ColumnName] + ""))) //{ // saveErrorMessage = saveErrorMessage + hasContainRow["username"].ToString() + "~" + col.ColumnName + ": 数据格式错误,请输入数值;\r\n"; //} //判断非空 if ((ListOfAttributes[0]["IS_NULLABLE"].ToString().Equals("NO") && string.IsNullOrWhiteSpace(fieldValue))) { saveErrorMessage = saveErrorMessage + (string.IsNullOrWhiteSpace(Comment) ? fieldKey : Comment + "不能为空#"); } return saveErrorMessage; } /// /// 说明:MYSQL验证 /// 创建人: /// 创建日期: /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// 数据库的表格属性表 /// 列名 /// 值 /// public static string MYSqlVerification(DataTable TableProperties, string fieldKey, string fieldValue, string Comment = null) { if (TableProperties.Rows.Count == 0) return ""; DataRow[] ListOfAttributes = TableProperties.Select("Field='" + fieldKey + "'");//指定列的数据库属性 if (ListOfAttributes == null || ListOfAttributes.Length == 0) return ""; string saveErrorMessage = string.Empty; int MaxInputLength = 0;//最大长度 //判断长度是否超出 //if (ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("varchar")) //{ // if (int.Parse(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"].ToString()) == -1) // { // ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] = 8000; // } // MaxInputLength = System.Text.Encoding.Default.GetBytes(fieldValue).Length; //} //else if (ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("nvarchar")) //{ // if (int.Parse(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"].ToString()) == -1) // { // ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] = 4000; // } // MaxInputLength = fieldValue.Length; //} //if (!string.IsNullOrWhiteSpace(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] + "") && IsNumberic(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"] + "") && int.Parse(ListOfAttributes[0]["CHARACTER_MAXIMUM_LENGTH"].ToString()) < MaxInputLength) //{ // saveErrorMessage = saveErrorMessage + fieldKey + ": 输入内容长度超出限制;\r\n"; //} //判断属性是否正确 //if ((ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("int") || ListOfAttributes[0]["DATA_TYPE"].ToString().Equals("decimal")) && !IsNumberic((row[col.ColumnName] + "").Replace("'", "''")) && !string.IsNullOrWhiteSpace((row[col.ColumnName] + ""))) //{ // saveErrorMessage = saveErrorMessage + hasContainRow["username"].ToString() + "~" + col.ColumnName + ": 数据格式错误,请输入数值;\r\n"; //} //判断非空 if ((ListOfAttributes[0]["Null"].ToString().Equals("NO") && string.IsNullOrWhiteSpace(fieldValue))) { saveErrorMessage = saveErrorMessage + (string.IsNullOrWhiteSpace(Comment) ? fieldKey : Comment + "不能为空#"); } return saveErrorMessage; } } }