我在这里需要一些建议。我正在制作一个应用程序以在 VB 表单中获取特定的 SQL 语句,但不知道哪个是最好的选择。
例如我有这句话来解释:
FROM sys.master_files WITH (NOLOCK)
但我需要的是
FROM sys.master_files
我需要得到FROM
下一个像sys.master_files
这正是我所需要的,它是一个基本的应用程序,只是为了捕捉 FROM 和接下来的事情。
现在我一直在研究和查看一些已经在 StackOverFlow 中提出的问题,我想知道这是否Regex.Match
是一种更快的方法来进行此检查,或者我是否可以使用IndexOf
但我不太了解它是如何工作的。
这就是我迄今为止在代码中所做的。
private void btnSearch_Click(object sender, EventArgs e)
{
string value = cboParam.Text;
string[] reservedWords = { "FROM", "SELECT", "JOIN", "UPDATE", "DROP", "ALTER", "CREATE" };
if (cboParam.Text == "")
{
MessageBox.Show("Wrong try again.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
List<string> listParam = new List<string>();
listParam.Add(value);
if (selectedPath == null && openFileDialog.FileNames == null)
{
MessageBox.Show("Choose a directory please.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (selectedPath != null)
{
foreach (string str in selectedPath)
{
string split = " ";
string readText = File.ReadAllText(str)
.Replace("\n", split)
.Replace("\r", split)
.Replace("_", split)
.Replace("-", split)
.Replace("SQL", split)
.Replace("sql", split)
.Replace("FROM", split)
.Replace("from", split)
.Replace("JOIN", split)
.Replace("join", split)
.Replace("UPDATE", split)
.Replace("update", split)
.Replace("DELETE", split)
.Replace("delete", split);
readText.IndexOf(value);
}
}
else if (openFileDialog.FileNames != null)
{
foreach (string str in openFileDialog.FileNames)
{
string split = "\nGO";
string readText = File.ReadAllText(str)
.Replace("\n", split)
.Replace("\r", split)
.Replace("_", split)
.Replace("-", split)
.Replace("SQL", split)
.Replace("sql", split)
.Replace("FROM", split)
.Replace("from", split)
.Replace("JOIN", split)
.Replace("join", split)
.Replace("UPDATE", split)
.Replace("update", split)
.Replace("DELETE", split)
.Replace("delete", split);
readText.IndexOf(value);
}
}
}
}
这就是我所拥有的,我试图使用 IndexOf 但无法给出连续性,因为我不了解它的操作。
为了更好地理解我来自巴西,所以我将代码的对变量更改为英文,以变得“易于”理解代码。