简易sql拼接代码生成器 C#版

<!DOCTYPE html>

<html>
	<head>
		<meta charset="utf-8">
		<meta name="renderer" content="ie-comp">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width">
		<title>简易sql拼接代码生成器 C#版</title>
		<style>
			.txtContent{
				width: 100%;
				height: 140px;
			}
		</style>
	</head>
	<body>
		表名:<input type="text" id="txtTb" />
		主键:<input type="text" id="txtPKfield" />
		字段:<input type="text" id="txtField" />
		<input type="button" value="生成" id="btnCreate" />
		<br/><br/>
		<textarea class='txtContent' id='txtAddCode'></textarea>
		<br/>
		<textarea class='txtContent' id='txtDelCode'></textarea>
		<br/>
		<textarea class='txtContent' id='txtMdfCode'></textarea>
		<br/>
		<textarea class='txtContent' id='txtGetCode'></textarea>
		<script>
			function rightTrim(str, char){
			    if(str[str.length - 1] === char){
			        return str.substring(0, str.lastIndexOf(char));
			    }
			    return str;
			}
			function leftTrim(str, char){
			    str = str.split("");//字符串 转 数组
			    str = str.reverse();//数组 倒置
			    str = str.join("");//数组 转 字符串
			    str = rightTrim(str, char);
			    str = str.split("");//字符串 转 数组
			    str = str.reverse();//数组 倒置
			    str = str.join("");//数组 转 字符串
			    return str;
			}
			function allTrim(str, char){
			    str = rightTrim(str, char);
			    str = leftTrim(str, char);
			    return str;
			}
			function createParamLst(field){
				var str = field.split(",");
				return str.join(",");
			}
			function createParamWithStringLst(field){
				var fieldArr = field.split(",");
				var str = [];
			    for(var i=0; i<fieldArr.length; i++){
			        str.push(" string " + fieldArr[i]);
			    }
			    return str.join(",");
			}
			function createPlaceholderLst(field){
				var fieldArr = field.split(",");
				var str = [];
			    for(var i=0; i<fieldArr.length; i++){
			        str.push("'{" + i + "}'");
			    }
			    return str.join(",");
			}
			function createKVLst(field, startIndex){
				var startIndex = startIndex ? startIndex : 0;
				var fieldArr = field.split(",");
				var str = [];
			    for(var i=0; i<fieldArr.length; i++){
			        str.push(fieldArr[i] + "='{" + (i + startIndex) + "}'");
			    }
			    return str.join(",");
			}
			function createKVWithAndLst(field, startIndex){
				var startIndex = startIndex ? startIndex : 0;
				var fieldArr = field.split(",");
				var str = [];
			    for(var i=0; i<fieldArr.length; i++){
			        str.push(" and " + fieldArr[i] + "='{" + (i + startIndex) + "}'");
			    }
			    str = str.join("");
			    str = leftTrim(str, " ");
			    str = leftTrim(str, "a");
			    str = leftTrim(str, "n");
			    str = leftTrim(str, "d");
			    return str;
			}





			function addCode(tb, field){
				var paramLst = createParamLst(field);
				var placeholderLst = createPlaceholderLst(field);
			    var code = '';
			    code  = 'public string Add_' + tb + '(' + createParamWithStringLst(field) + ')\n';
			    code += '{\n';
			    code += '    string sql = @"insert into ' + tb + '(' + paramLst + ') values(' + placeholderLst + ')";\n';
			    code += '    sql = string.Format(sql, ' + paramLst + ');\n';
			    code += '    return sql;\n';
			    code += '}\n';
			    return code;
			};
			function delCode(tb, PKfield){
				var paramLst = createParamLst(PKfield);
				var kvLst = createKVWithAndLst(PKfield);
			    var code = '';
			    code  = 'public string Del_' + tb + '(' + createParamWithStringLst(PKfield) + ')\n';
			    code += '{\n';
			    code += '    string sql = @"delete from ' + tb + ' where ' + kvLst + '";\n';
			    code += '    sql = string.Format(sql, ' + paramLst + ');\n';
			    code += '    return sql;\n';
			    code += '}\n';
			    return code;
			};
			function mdfCode(tb, field, PKfield){
				var paramLst = createParamLst(field + ',' + PKfield);
				var kvLst1 = createKVLst(field);
				var kvLst2 = createKVWithAndLst(PKfield, kvLst1.split(",").length);
			    var code = '';
			    code  = 'public string Mdf_' + tb + '(' + createParamWithStringLst(field + ',' + PKfield) + ')\n';
			    code += '{\n';
			    code += '    string sql = @"update ' + tb + ' set ' + kvLst1 + ' where ' + kvLst2 + '";\n';
			    code += '    sql = string.Format(sql, ' + paramLst + ');\n';
			    code += '    return sql;\n';
			    code += '}\n';
			    return code;
			};
			function getCode(tb, field){
				var paramLst = createParamLst(field);
				var fieldArr = field.split(",");
			    var code = '';
			    code  = 'public string Get_' + tb + '(' + createParamWithStringLst(field) + ')\n';
			    code += '{\n';
			    code += '    string sql = @"select ' + paramLst + ' from ' + tb + ' where 1=1";\n';

			    var tmp = '';
			    for(var i=0; i<fieldArr.length; i++){
			    	tmp += '    if(' + fieldArr[i] + ' != "")\n';
			    	tmp += '    {\n';
			    	tmp += '        sql += " and ' + fieldArr[i] + ' = \'" + ' + fieldArr[i] + ' + "\'' + '";\n';
			    	tmp += '    }\n';
				}
				code += tmp;

			    code += '    return sql;\n';
			    code += '}\n';
			    return code;
			};

			window.onload = function(){
				document.getElementById("txtTb").value = "testTb";
				document.getElementById("txtPKfield").value = "a,b,c";
				document.getElementById("txtField").value = "d,e,f,g,h";
			}
			document.getElementById("btnCreate").onclick = function(){
				var tb = document.getElementById("txtTb").value;
				var PKfield = document.getElementById("txtPKfield").value;
				var field = document.getElementById("txtField").value;
				if((!tb) || (!PKfield) || (!field)){
					alert("请完整输入!");
					return;
				}
				document.getElementById("txtAddCode").value = addCode(tb, field);
				document.getElementById("txtDelCode").value = delCode(tb, PKfield);
				document.getElementById("txtMdfCode").value = mdfCode(tb, field, PKfield);
				document.getElementById("txtGetCode").value = getCode(tb, field);
			};
		</script>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/low584710047/article/details/51176685