public bool Insert(string TableName, Hashtable Cols)
{
int Count = 0;
if (Cols.Count <= 0)
{
return true;
} string Fields = "(";
string Values = "values(";
foreach (DictionaryEntry item in cols)
{
if (Count != 0)
{
Fields += ",";
Values += ",";
}
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;
}
Fields += ")";
Values += ")";
string SqlString = "insert into "+TableName +Fields +Values ;
return Convert.ToBoolean(ExecuteSql (SqlString ));
}
/// <summary>
谁能帮我解释一下,。中间得语句块不是很明白。最后那还弄个count++
{
int Count = 0;
if (Cols.Count <= 0)
{
return true;
} string Fields = "(";
string Values = "values(";
foreach (DictionaryEntry item in cols)
{
if (Count != 0)
{
Fields += ",";
Values += ",";
}
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;
}
Fields += ")";
Values += ")";
string SqlString = "insert into "+TableName +Fields +Values ;
return Convert.ToBoolean(ExecuteSql (SqlString ));
}
/// <summary>
谁能帮我解释一下,。中间得语句块不是很明白。最后那还弄个count++
{
Fields += ",";
Values += ",";
}
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;Count!=0的时候说明不是第一个元素
也就是values="values(fields1";这个时候,要加上字符","因为count初始的时候是0
所以第一次循环一定不走if里面的语句恩~好吧,我承认,小学语文没学好!总结的不好
自己调试一下就全明白了
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;
通过FOREACH循环。
最后返回布尔值
if (Count != 0)
{
Fields += ",";
Values += ",";
}没必要放在 foreach 循环中,还有那个count++
那个循环 就是把hashtable中的 key与value 拼成一个insert 语句中的 字段部分与值部分
如 insert into tablename(f1,f2...) values(v1,v2...)
{
return true;
}
这里为什么返回真,而不是假呢。。没有数据怎么还返回真呢
/// 负责保存到实据库中
/// </summary>
/// <param name="TableName">目的表名</param>
/// <param name="Hashtable">字段和对应值表</param>
/// <returns></returns>
public bool Insert(string TableName, Hashtable Cols)
{
int Count = 0;
//判断字段和对应值表是否为空
if (Cols.Count <= 0)
{
return true;
}
//构造Insert语句 Fields
string Fields = "(";
//构造Insert语句Value
string Values = "values(";
foreach (DictionaryEntry item in cols)
{
if (Count != 0)
{
Fields += ",";
Values += ",";
}
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;
}
Fields += ")";
Values += ")";
//构造完整insert
string SqlString = "insert into "+TableName +Fields +Values ;
//存入数据库
return Convert.ToBoolean(ExecuteSql (SqlString ));
}
/// <summary>
public bool Insert(string TableName, Hashtable Cols)
{
int Count = 0;
if (Cols.Count <= 0)
{
return true;
} string Fields = "(";
string Values = "values(";
foreach (DictionaryEntry item in cols)
{ if (Count != 0)
{
Fields += ",";
Values += ",";
}//不是第一个(key,value)对的话,就在fields和values中添加逗号 Fields += item.Key.ToString();//通过累加生成(field1,field2,field3,...)字符串
Values += item.Value.ToString();//通过累加生成(value1,value2,value3,...)字符串
Count++;//用来记录(key,value)对的个数
}
Fields += ")";
Values += ")";
string SqlString = "insert into "+TableName +Fields +Values ;
return Convert.ToBoolean(ExecuteSql (SqlString ));
}
/// <summary>
可以用
StringBuilder类来执行字符累加计算哦!
{
f.append(",");
v.append(",");
f.append(item.Key.ToString());
v.append(item.Value.ToString());
}
f.remove(0,1);
v.remove(0,1);然后用f.tostring、v.tostring拼接上其他字符串
他生成的字符串最前面多了个逗号
,key1,key2,key3...
所以要把第一个字符去掉