您的位置:首页 > 其它

关于DataTable的某些用法

2006-07-04 22:05 295 查看
/// <summary>
/// 从DataTable里面复制数据到DataGrid、DataList,第一个参数是DataTalbe变量名,第二个参数是要复制的行数
/// </summary>
/// <param name="p_dtIn"></param>
/// <param name="p_iRows"></param>
/// <returns></returns>
public static DataTable CopyRows(DataTable p_dtIn,int p_iRows)
{
DataTable dtOut;
dtOut = p_dtIn.Clone();

int iCount = p_dtIn.Rows.Count;
int iCopy;
if (iCount > p_iRows)
iCopy = p_iRows;
else
iCopy = iCount;

for(int i=0;i<iCopy;i++)
{
DataRow dr = p_dtIn.NewRow();
dr = p_dtIn.Rows[i];

DataRow drr = dtOut.NewRow();

drr.ItemArray = dr.ItemArray;
dtOut.Rows.Add(drr);
}

return dtOut;
}

/// <summary>
/// 在DataTable里面添加一个新列并填充数据。
/// </summary>
/// <param name="p_dtIn"></param>
/// <returns></returns>
public static DataTable AddIndex(DataTable p_dtIn)
{
DataColumn myColumn = new DataColumn();
myColumn.DataType = System.Type.GetType("System.Int16");
myColumn.AllowDBNull = false;
myColumn.Caption = "Idx";
myColumn.ColumnName = "Idx";
myColumn.DefaultValue = 0;
p_dtIn.Columns.Add(myColumn);

int iCount = p_dtIn.Rows.Count;

for(int i=0;i<iCount;i++)
{
p_dtIn.Rows[i]["Idx"] = i + 1;
}

return p_dtIn;
}

/// <summary>
/// 在DataTalbe里面添加一个新列并填充数据,并可以控制某一列数据的长度。
/// </summary>
/// <param name="p_dtIn"></param>
/// <param name="p_strColunmName"></param>
/// <param name="p_iLen"></param>
/// <param name="bIf"></param>
/// <returns></returns>
public static DataTable AddIdxAndSetColumnLen(DataTable p_dtIn,string p_strColunmName,int p_iLen,bool bIf)
{
DataColumn myColumn = new DataColumn();
myColumn.DataType = System.Type.GetType("System.Int16");
myColumn.AllowDBNull = false;
myColumn.Caption = "Idx";
myColumn.ColumnName = "Idx";
myColumn.DefaultValue = 0;
p_dtIn.Columns.Add(myColumn);

string strLoop;
int iLen = p_iLen;
string strLName;
for(int i=0;i< p_dtIn.Rows.Count;i++)
{
p_dtIn.Rows[i]["Idx"] = i + 1;
strLName = p_dtIn.Rows[i][p_strColunmName].ToString();
if(strLName.Length > iLen)
{
strLoop = strLName.Substring(0,iLen);
if(bIf != false)
strLoop += "...";
p_dtIn.Rows[i][p_strColunmName] = strLoop;
}
}

return p_dtIn;
}

/// <summary>
/// 在DATATABLE里面控制一列string数据的长度
/// </summary>
/// <param name="p_dtIn"></param>
/// <param name="p_strColunmName">要控制的列名</param>
/// <param name="p_iLen"></param>
/// <param name="bIf"></param>
/// <returns></returns>
public static DataTable SetColumnLen(DataTable p_dtIn,string p_strColunmName,int p_iLen,bool bIf)
{
string strLoop;
int iLen = p_iLen;
string strLName;
for(int i=0;i< p_dtIn.Rows.Count;i++)
{
strLName = p_dtIn.Rows[i][p_strColunmName].ToString();
if(strLName.Length > iLen)
{
strLoop = strLName.Substring(0,iLen);
if(bIf != false)
strLoop += "...";
p_dtIn.Rows[i][p_strColunmName] = strLoop;
}
}

return p_dtIn;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: