我有以下資料表:

欄位“court_case”具有不同的格式并且不緊湊,預期格式為:XXXX/XX(“4 位數字”/“2 位數字”)
例如:
12/13 -> 0012/13
2/1 -> 0002/10
/18 -> 0000/18
45/ -> 0045/00
即,如果“/”之前的第一部分是這種情況,則用前導零完成,如果是“/”之后的情況,則用前導零完成。
private void bt_showDataTable_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
dataGridView2.DataSource = getDataTable();
}
public DataTable getDataTable()
{
DataTable dtTabla = new DataTable();
try
{
MySqlConnection connection = new MySqlConnection();
connection.ConnectionString = configuracion.conexion;
connection.Open();
string query = "SELECT * FROM CC_T.CONSIGNATION WHERE ACCOUNT IN ('error');"; //query from the image above
MySqlCommand mycmd = new MySqlCommand(query, connection);
mycmd.Connection = connection;
MySqlDataReader reader = mycmd.ExecuteReader();
dtTabla.Load(reader);
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
return dtTabla;
}
// METHOD TO VALIDATE COURT CASE
public static bool Validar_Cc(string CourtCase)
{
int i = 0;
string part1 = "";
string part2 = "";
bool result1 = false;
bool result2 = false;
if (CourtCase.Contains("/"))
{
part1 = CourtCase.Substring(0, CourtCase.IndexOf('/'));
part2 = CourtCase.Substring(CourtCase.IndexOf('/') 1, CourtCase.Length - CourtCase.IndexOf('/') - 1);
result1 = int.TryParse(part1, out i);
result2 = int.TryParse(part2, out i);
}
if (!result1 || !result2)
{
return false;
}
else return true;
}
通過此驗證,我只檢查 court_case 的內容是否為整數型別。但我不檢查格式的驗證,如:“ XXXX/XX ”。
在這里我必須通過方法來驗證:
private void btnCORRECT_ERROR_COURTCASE_Click(object sender, EventArgs e)
{
string reply = "";
foreach(DataColumn column in dataGridView2.Rows)
{
//
}
}
我知道這是錯誤的,但我不知道如何繼續。有什么幫助嗎??
uj5u.com熱心網友回復:
好吧,從技術上講,您希望將字串拆分為 2 部分,分別處理每個部分并將其與添加的零一起添加。喜歡:
var inputArray = new string[4] { "12/13", "2/1", "/18", "45/" };
var results = new List<string>();
foreach (var str in inputArray)
{
var parts = str.Split(new string[] { "/" }, StringSplitOptions.None);
var result = parts[0].PadLeft(4, '0') "/" parts[1].PadLeft(2, '0');
results.Add(result);
}
uj5u.com熱心網友回復:
您可以使用string.PadLeft方法將前導零0(或其他字符)附加到某個字串:
static string AddLeadingZeros(string s, int amount)
{
return s.PadLeft(amount, '0');
}
用法示例:
void FixCourtCases()
{
string[] courtCases = new string[]
{
"6906/2",
"9163/2",
"504/",
"3/",
"9/4",
"4311/",
"0/",
"/6",
"193/0",
"0/2",
};
for (int i = 0; i < courtCases.Length; i )
{
// Split left and right numbers by '/'
string[] courtCase = courtCases[i].Split(new string[] { "/" }, StringSplitOptions.None);
// Add leading zeros to left and right numbers
string fixedLeftNumber = AddLeadingZeros(courtCase[0], 4);
string fixedRightNumber = AddLeadingZeros(courtCase[1], 2)
// Reassign value with fixed one
courtCases[i] = fixedLeftNumber "/" fixedRightNumber;
}
}
它會給你這樣的結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311135.html
標籤:C#
