<!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>
简易sql拼接代码生成器 C#版
最新推荐文章于 2024-08-08 08:17:33 发布