散分咯!!!轻轻松松得分......... 如何读取 一个.SQL文件 并且实现检查各个关键字,把所有的小写改为大写!!!随便有完整的语句,就可以轻易拿到20分哦!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议文件比较长的话,通常SQL语句都带有单独行的GO的,读到GO做一个段落进行处理,也是不错的。 --------------------------------------------------------------程序,犹如人生。 可以考虑把SQL 关键字做成字典,然后用hash进行匹配 private string pattern = @"\bADD\b|\bEXECUTE\b|\bPRECISION\b|\bALL\b|\bEXISTS\b|\bPRIMARY\b|\bALTER\b|\bEXIT\b|\bPRINT\b|\bAND\b|\bEXTERNAL\b|\bPROC\b|\bANY\b|\bFETCH\b|\bPROCEDURE\b|\bAS\b|\bFILE\b|\bPUBLIC\b|\bASC\b|\bFILLFACTOR\b|\bRAISERROR\b|\bAUTHORIZATION\b|\bFOR\b|\bREAD\b|\bBACKUP\b|\bFOREIGN\b|\bREADTEXT\b|\bBEGIN\b|\bFREETEXT\b|\bRECONFIGURE\b|\bBETWEEN\b|\bFREETEXTTABLE\b|\bREFERENCES\b|\bBREAK\b|\bFROM\b|\bREPLICATION\b|\bBROWSE\b|\bFULL\b|\bRESTORE\b|\bBULK\b|\bFUNCTION\b|\bRESTRICT\b|\bBY\b|\bGOTO\b|\bRETURN\b|\bCASCADE\b|\bGRANT\b|\bREVERTCASE\b|\bGROUP\b|\bREVOKE\b|\bCHECK\b|\bHAVING\b|\bRIGHT\b|\bCHECKPOINT\b|\bHOLDLOCK\b|\bROLLBACK\b|\bCLOSE\b|\bIDENTITY\b|\bROWCOUNT\b|\bCLUSTERED\b|\bIDENTITY_INSERT\b|\bROWGUIDCOL\b|\bCOALESCE\b|\bIDENTITYCOL\b|\bRULE\b|\bCOLLATE\b|\bIF\b|\bSAVE\b|\bCOLUMN\b|\bIN\b|\bSCHEMA\b|\bCOMMIT\b|\bINDEX\b|\bSELECT\b|\bCOMPUTE\b|\bINNER\b|\bSESSION_USER\b|\bCONSTRAINT\b|\bINSERT\b|\bSET\b|\bCONTAINS\b|\bINTERSECT\b|\bSETUSER\b|\bCONTAINSTABLE\b|\bINTO\b|\bSHUTDOWN\b|\bCONTINUE\b|\bIS\b|\bSOME\b|\bCONVERT\b|\bJOIN\b|\bSTATISTICS\b|\bCREATE\b|\bKEY\b|\bSYSTEM_USER\b|\bCROSS\b|\bKILL\b|\bTABLE\b|\bCURRENT\b|\bLEFT\b|\bTABLESAMPLE\b|\bCURRENT_DATE\b|\bLIKE\b|\bTEXTSIZE\b|\bCURRENT_TIME\b|\bLINENO\b|\bTHEN\b|\bCURRENT_TIMESTAMP\b|\bLOAD\b|\bTO\b|\bCURRENT_USER\b|\bNATIONAL\b|\bTOP\b|\bCURSOR\b|\bNOCHECK\b|\bTRAN\b|\bDATABASE\b|\bNONCLUSTERED\b|\bTRANSACTION\b|\bDBCC\b|\bNOT\b|\bTRIGGER\b|\bDEALLOCATE\b|\bNULL\b|\bTRUNCATE\b|\bDECLARE\b|\bNULLIF\b|\bTSEQUAL\b|\bDEFAULT\b|\bOF\b|\bUNION\b|\bDELETE\b|\bOFF\b|\bUNIQUE\b|\bDENY\b|\bOFFSETS\b|\bUNPIVOT\b|\bDESC\b|\bON\b|\bUPDATE\b|\bDISK\b|\bOPEN\b|\bUPDATETEXT\b|\bDISTINCT\b|\bOPENDATASOURCE\b|\bUSE\b|\bDISTRIBUTED\b|\bOPENQUERY\b|\bUSER\b|\bDOUBLE\b|\bOPENROWSET\b|\bVALUES\b|\bDROP\b|\bOPENXML\b|\bVARYING\b|\bDUMMY\b|\bOPTION\b|\bVIEW\b|\bDUMP\b|\bOR\b|\bWAITFOR\b|\bELSE\b|\bORDER\b|\bWHEN\b|\bEND\b|\bOUTER\b|\bWHERE\b|\bERRLVL\b|\bOVER\b|\bWHILE\b|\bESCAPE\b|\bPERCENT\b|\bWITH\b|\bEXCEPT\b|\bPIVOT\b|\bWRITETEXT\b|\bEXEC\b|\bPLAN\b"; private void button1_Click(object sender, EventArgs e) { pattern = pattern.Replace("\r\n", ""); textBox2.Text = Regex.Replace(textBox1.Text, pattern, new MatchEvaluator(Replace), RegexOptions.IgnoreCase | RegexOptions.Compiled); } private string Replace(Match match) { return match.Value.ToUpper(); } using System.Text.RegularExpressions;有没有加? C#,winform开发使用splitContainer遇到的问题 求VerticalMenu的Dll文件? 在datagridview 的同一列中显示复选框和文本 dataGridView问题 datagridview 显示问题 磁盘共享 string FileName=this.fileSel.PostedFile.FileName.ToString();: 报错为未将对象引用设置到对象的实例。 C#中的多线程 鼠标左右键一起按下的事件怎么处理? 提取文件! c#中Timer的Interval属性最大可以为多少? dev中GridControl新问题!!!!(高分,在线等待)
--------------------------------------------------------------
程序,犹如人生。
ALTER\b|\bEXIT\b|\bPRINT\b|\bAND\b|\bEXTERNAL\b|\bPROC\b|\bANY\b|\bFETCH\b|\bPROCEDURE\b|\bAS\b|\bFILE\b|\b
PUBLIC\b|\bASC\b|\bFILLFACTOR\b|\bRAISERROR\b|\bAUTHORIZATION\b|\bFOR\b|\bREAD\b|\bBACKUP\b|\bFOREIGN\b|\b
READTEXT\b|\bBEGIN\b|\bFREETEXT\b|\bRECONFIGURE\b|\bBETWEEN\b|\bFREETEXTTABLE\b|\bREFERENCES\b|\bBREAK\b|\b
FROM\b|\bREPLICATION\b|\bBROWSE\b|\bFULL\b|\bRESTORE\b|\bBULK\b|\bFUNCTION\b|\bRESTRICT\b|\bBY\b|\bGOTO\b|\b
RETURN\b|\bCASCADE\b|\bGRANT\b|\bREVERTCASE\b|\bGROUP\b|\bREVOKE\b|\bCHECK\b|\bHAVING\b|\bRIGHT\b|\bCHECKPOINT\b|\b
HOLDLOCK\b|\bROLLBACK\b|\bCLOSE\b|\bIDENTITY\b|\bROWCOUNT\b|\bCLUSTERED\b|\bIDENTITY_INSERT\b|\bROWGUIDCOL\b|\b
COALESCE\b|\bIDENTITYCOL\b|\bRULE\b|\bCOLLATE\b|\bIF\b|\bSAVE\b|\bCOLUMN\b|\bIN\b|\bSCHEMA\b|\bCOMMIT\b|\bINDEX\b|\b
SELECT\b|\bCOMPUTE\b|\bINNER\b|\bSESSION_USER\b|\bCONSTRAINT\b|\bINSERT\b|\bSET\b|\bCONTAINS\b|\bINTERSECT\b|\b
SETUSER\b|\bCONTAINSTABLE\b|\bINTO\b|\bSHUTDOWN\b|\bCONTINUE\b|\bIS\b|\bSOME\b|\bCONVERT\b|\bJOIN\b|\bSTATISTICS\b|\b
CREATE\b|\bKEY\b|\bSYSTEM_USER\b|\bCROSS\b|\bKILL\b|\bTABLE\b|\bCURRENT\b|\bLEFT\b|\bTABLESAMPLE\b|\bCURRENT_DATE\b|\b
LIKE\b|\bTEXTSIZE\b|\bCURRENT_TIME\b|\bLINENO\b|\bTHEN\b|\bCURRENT_TIMESTAMP\b|\bLOAD\b|\bTO\b|\bCURRENT_USER\b|\b
NATIONAL\b|\bTOP\b|\bCURSOR\b|\bNOCHECK\b|\bTRAN\b|\bDATABASE\b|\bNONCLUSTERED\b|\bTRANSACTION\b|\bDBCC\b|\bNOT\b|\b
TRIGGER\b|\bDEALLOCATE\b|\bNULL\b|\bTRUNCATE\b|\bDECLARE\b|\bNULLIF\b|\bTSEQUAL\b|\bDEFAULT\b|\bOF\b|\bUNION\b|\b
DELETE\b|\bOFF\b|\bUNIQUE\b|\bDENY\b|\bOFFSETS\b|\bUNPIVOT\b|\bDESC\b|\bON\b|\bUPDATE\b|\bDISK\b|\bOPEN\b|\b
UPDATETEXT\b|\bDISTINCT\b|\bOPENDATASOURCE\b|\bUSE\b|\bDISTRIBUTED\b|\bOPENQUERY\b|\bUSER\b|\bDOUBLE\b|\bOPENROWSET\b|\b
VALUES\b|\bDROP\b|\bOPENXML\b|\bVARYING\b|\bDUMMY\b|\bOPTION\b|\bVIEW\b|\bDUMP\b|\bOR\b|\bWAITFOR\b|\bELSE\b|\b
ORDER\b|\bWHEN\b|\bEND\b|\bOUTER\b|\bWHERE\b|\bERRLVL\b|\bOVER\b|\bWHILE\b|\bESCAPE\b|\bPERCENT\b|\bWITH\b|\b
EXCEPT\b|\bPIVOT\b|\bWRITETEXT\b|\bEXEC\b|\bPLAN\b"; private void button1_Click(object sender, EventArgs e)
{
pattern = pattern.Replace("\r\n", "");
textBox2.Text = Regex.Replace(textBox1.Text, pattern, new MatchEvaluator(Replace), RegexOptions.IgnoreCase | RegexOptions.Compiled);
} private string Replace(Match match)
{
return match.Value.ToUpper();
}
有没有加?