Это отдельная проблема, связанная с предыдущим вопросом, который я задал здесь для SO.
Я разместил копию моего полного источника на gist.github , и у меня есть только одинпроблема, которую я не могу решить.
FindLine()
всегда возвращает -1.Я подтвердил, что двум переменным передаются хорошие данные, поэтому я не могу понять, почему сравнения никогда не возвращают ничего, кроме -1.
Вот фрагмент соответствующего кода, если вы не хотитечтобы проверить полный источник:
DataTable resultTable = new DataTable();
string ImportPath = @"***PATH***\***INFILE***.csv";
string QueryString = "SELECT DISTINCT UPPER(MP.Symbol) AS Symbol, LOWER(MP.SecType) AS SecType, MBI.Status FROM MoxySecMaster AS MP LEFT JOIN MoxyBondInfo AS MBI ON MP.Symbol = MBI.Symbol AND MP.SecType = MBI.SecType WHERE MP.SecType <> 'caus' AND MP.SecType IS NOT NULL AND MP.Symbol IS NOT NULL ORDER BY Symbol ASC;";
string symb = "";
StringBuilder OrigText = new StringBuilder();
SqlConnection MoxyConn = new SqlConnection("server=***;database=***;user id=***;password=***");
SqlDataAdapter adapter = new SqlDataAdapter(QueryString, MoxyConn);
MoxyConn.Open();
resultTable = new DataTable();
adapter.Fill(resultTable);
MoxyConn.Close();
OrigText.Append(File.ReadAllText(ImportPath));
char[] tempSymb = new char[10];
OrigText.CopyTo(0, tempSymb, 0, OrigText.ToString().IndexOf(",", 0));
symb = new string(tempSymb);
int foundSpot = FindLine(symb, resultTable);
... и ...
static int FindLine(string symbol, DataTable symbolList)
{
for (int vcl = 0; vcl < symbolList.Rows.Count; vcl++)
{
if (symbolList.Rows[vcl][0].ToString() == symbol.ToUpper())
return vcl;
}
return -1;
}