public DataControls(int Command,//对应命令,0是Select,1是Insert,2是Update,3是Delete
string Table,//表名
string[] Where,//Where Search Criteria
SqlConnection objConn//服务器连接
)
{
// TODO: 在此处添加构造函数逻辑
iCommand=Command;
strTable=Table;
strWhere=Where;
Conn=objConn;
} private string BuildCommand()
{
string strCommand;
if(iCommand>3||strTable==null)
return null;
if(strTable.Trim()=="")
return null; switch(iCommand)
{
case 0:
{
strCommand="SELECT Column FROM Table WHERE Search Criteria GROUP BY Team HAVING Search Criteria ORDER BY SortCondition";
int iIndex=strCommand.IndexOf("Column");
strCommand=strCommand.Remove(iIndex,6);
int iPlace=1;
foreach(string strCol in strColumn)
{
strCommand=strCommand.Insert(iIndex,strCol);
iIndex+=strCol.Length;
if(strColumn.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
strCommand=strCommand.Replace("Table",strTable); iIndex=strCommand.IndexOf("WHERE Search Criteria");
strCommand=strCommand.Remove(iIndex,21);
if(strWhere!=null)
{
strCommand=strCommand.Insert(iIndex,"WHERE ");
iIndex+=6;
iPlace=1;
foreach(string strWhe in strWhere)
{
strCommand=strCommand.Insert(iIndex,strWhe);
iIndex+=strWhe.Length;
if(strWhere.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex," AND ");
iIndex+=5;
}
iPlace++;
}
}
iIndex=strCommand.IndexOf("GROUP BY Team");
strCommand=strCommand.Remove(iIndex,13);
if(strGroupBy!=null)
{
strCommand=strCommand.Insert(iIndex,"GROUP BY ");
iIndex+=9;
iPlace=1;
foreach(string strGrBy in strGroupBy)
{
strCommand=strCommand.Insert(iIndex,strGrBy);
iIndex+=strGrBy.Length;
if(strGroupBy.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
}
iIndex=strCommand.IndexOf("HAVING Search Criteria");
strCommand=strCommand.Remove(iIndex,22);
if(strHaving!=null)
{
strCommand=strCommand.Insert(iIndex,"HAVING ");
iIndex+=7;
iPlace=1;
foreach(string strHav in strHaving)
{
strCommand=strCommand.Insert(iIndex,strHav);
iIndex+=strHav.Length;
if(strHaving.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex," AND ");
iIndex+=5;
}
iPlace++;
}
}
string Table,//表名
string[] Where,//Where Search Criteria
SqlConnection objConn//服务器连接
)
{
// TODO: 在此处添加构造函数逻辑
iCommand=Command;
strTable=Table;
strWhere=Where;
Conn=objConn;
} private string BuildCommand()
{
string strCommand;
if(iCommand>3||strTable==null)
return null;
if(strTable.Trim()=="")
return null; switch(iCommand)
{
case 0:
{
strCommand="SELECT Column FROM Table WHERE Search Criteria GROUP BY Team HAVING Search Criteria ORDER BY SortCondition";
int iIndex=strCommand.IndexOf("Column");
strCommand=strCommand.Remove(iIndex,6);
int iPlace=1;
foreach(string strCol in strColumn)
{
strCommand=strCommand.Insert(iIndex,strCol);
iIndex+=strCol.Length;
if(strColumn.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
strCommand=strCommand.Replace("Table",strTable); iIndex=strCommand.IndexOf("WHERE Search Criteria");
strCommand=strCommand.Remove(iIndex,21);
if(strWhere!=null)
{
strCommand=strCommand.Insert(iIndex,"WHERE ");
iIndex+=6;
iPlace=1;
foreach(string strWhe in strWhere)
{
strCommand=strCommand.Insert(iIndex,strWhe);
iIndex+=strWhe.Length;
if(strWhere.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex," AND ");
iIndex+=5;
}
iPlace++;
}
}
iIndex=strCommand.IndexOf("GROUP BY Team");
strCommand=strCommand.Remove(iIndex,13);
if(strGroupBy!=null)
{
strCommand=strCommand.Insert(iIndex,"GROUP BY ");
iIndex+=9;
iPlace=1;
foreach(string strGrBy in strGroupBy)
{
strCommand=strCommand.Insert(iIndex,strGrBy);
iIndex+=strGrBy.Length;
if(strGroupBy.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
}
iIndex=strCommand.IndexOf("HAVING Search Criteria");
strCommand=strCommand.Remove(iIndex,22);
if(strHaving!=null)
{
strCommand=strCommand.Insert(iIndex,"HAVING ");
iIndex+=7;
iPlace=1;
foreach(string strHav in strHaving)
{
strCommand=strCommand.Insert(iIndex,strHav);
iIndex+=strHav.Length;
if(strHaving.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex," AND ");
iIndex+=5;
}
iPlace++;
}
}
解决方案 »
- DataGridView 中二个字段设置ComboBox
- access数据库乱码问题-----再次发帖
- 从数据库读取图片,用SqlDataReader读取精确到字符段 读的数据要转化成string类型。急等!!!! C#
- 有个需求,请大家给点思路
- 有关进程消除问题
- c#如何获取字符串的前50个字符?
- aspx页面不完全支持js脚本???求大侠指点了,小弟感激不尽啊!!!!
- 有像资源管理器一样显示本机文件目录的控件吗?
- DataGrid(winform) 如何修改Header Text 的???
- 怎样在菜单中加入图标?
- 关于listview的标题的问题。请高手指点
- 高分textBox控制键盘输入内容的小问题,
strCommand=strCommand.Remove(iIndex,22);
if(strOrderBy!=null)
{
strCommand=strCommand.Insert(iIndex,"ORDER BY ");
iIndex+=9;
iPlace=1;
foreach(string strOrBy in strOrderBy)
{
strCommand=strCommand.Insert(iIndex,strOrBy);
iIndex+=strOrBy.Length;
if(strOrderBy.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
}
return strCommand; }
case 1:
{
if(strColumn.Length!=strValues.Length)
return null; strCommand="INSERT INTO Table (Column) VALUES(Value)";
strCommand=strCommand.Replace("Table",strTable); int iIndex=strCommand.IndexOf("Column");
strCommand=strCommand.Remove(iIndex,6);
int iPlace=1;
foreach(string strCol in strColumn)
{
strCommand=strCommand.Insert(iIndex,strCol);
iIndex+=strCol.Length;
if(strColumn.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
iIndex=strCommand.IndexOf("Value");
strCommand=strCommand.Remove(iIndex,5);
iPlace=1;
foreach(string strValue in strValues)
{
strCommand=strCommand.Insert(iIndex,"'"+strValue+"'");
iIndex+=strValue.Length+2;
if(strValues.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
} return strCommand;
}
case 2:
{
if(strColumn.Length!=strValues.Length)
return null; strCommand="UPDATE Table SET Column=Value WHERE Search Criteria";
strCommand=strCommand.Replace("Table",strTable);
int iIndex=strCommand.IndexOf("Column=Value");
strCommand=strCommand.Remove(iIndex,12);
int iPlace=1;
foreach(string strCol in strColumn)
{
string strValue=strValues[iPlace-1];
strCommand=strCommand.Insert(iIndex,strCol+"='"+strValue+"'");
iIndex+=strCol.Length+strValue.Length+3;
if(strColumn.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex,",");
iIndex++;
}
iPlace++;
}
iIndex=strCommand.IndexOf("Search Criteria");
strCommand=strCommand.Remove(iIndex,15);
iPlace=1;
foreach(string strWhe in strWhere)
{
strCommand=strCommand.Insert(iIndex,strWhe);
iIndex+=strWhe.Length;
if(strWhere.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex," AND ");
iIndex+=5;
}
iPlace++;
} return strCommand;
}
{ strCommand="DELETE FROM Table WHERE Search Criteria";
strCommand=strCommand.Replace("Table",strTable); int iIndex=strCommand.IndexOf("Search Criteria");
strCommand=strCommand.Remove(iIndex,15);
int iPlace=1;
foreach(string strWhe in strWhere)
{
strCommand=strCommand.Insert(iIndex,strWhe);
iIndex+=strWhe.Length;
if(strWhere.Length>iPlace)
{
strCommand=strCommand.Insert(iIndex," AND ");
iIndex+=5;
}
iPlace++;
}
return strCommand;
}
}
return null;
}
public ICollection SelectCommand()
{
try
{
DataTable dt=new DataTable();
DataView dv;
string strCommand=BuildCommand();
if(iCommand==0)
{
SqlDataAdapter objDA=new SqlDataAdapter(strCommand,Conn);
objDA.Fill(dt);
dv=new DataView(dt);
}
else
{
return null;
}
return dv;
}
catch
{
return null;
}
}
public bool InsertCommand()
{
if(iCommand==1)
{
try
{
SqlCommand objCmd=new SqlCommand(BuildCommand(),Conn);
objCmd.Connection.Open();
objCmd.ExecuteNonQuery();
objCmd.Connection.Close();
}
catch
{
return false;
}
return true;
}
return false;
} public bool UpdateCommand()
{
if(iCommand==2)
{
try
{
SqlCommand objCmd=new SqlCommand(BuildCommand(),Conn);
objCmd.Connection.Open();
objCmd.ExecuteNonQuery();
objCmd.Connection.Close();
}
catch
{
return false;
}
return true;
}
return false;
} public bool DeleteCommand()
{
if(iCommand==3)
{
try
{
SqlCommand objCmd=new SqlCommand(BuildCommand(),Conn);
objCmd.Connection.Open();
objCmd.ExecuteNonQuery();
objCmd.Connection.Close();
}
catch
{
return false;
}
return true;
}
return false;
}
public string[] Column
{
get
{
return strColumn;
}
set
{
strColumn=value;
}
} public string[] Values
{
get
{
return strValues;
}
set
{
strValues=value;
}
} public string[] Where
{
get
{
return strWhere;
}
set
{
strWhere=value;
}
}
public string[] GroupBy
{
get
{
return strGroupBy;
}
set
{
strGroupBy=value;
}
}
public string[] Having
{
get
{
return strHaving;
}
set
{
strHaving=value;
}
}
public string[] OrderBy
{
get
{
return strOrderBy;
}
set
{
strOrderBy=value;
}
}
public int Command
{
get
{
return iCommand;
}
set
{
iCommand=value;
}
}
public string Table
{
get
{
return strTable;
}
set
{
strTable=value;
}
}
public SqlConnection SqlConn
{
get
{
return Conn;
}
set
{
Conn=value;
}
}
}
}
我是使用.NETFRAME WORK V1.1的~``