① c#中的DataTable如何修改數據類型
很簡單。修改下值就可以。
我想LZ要學會自己思考。我想這個你都沒有思考一看不會就發上來了。我給你寫下如何生成DataTable的步驟。然後自己思考,修改下。
最簡單的方式
DataTable dt=new DataTable("Table1"); //創建數據表
DataColumn dcID=new DataColumn("ID",typeof(int)); //創建ID列
DataColumn dcName=new DataColumn("Name",typeof(string));//創建姓名列
DataColumn dcState=new DataColumn("State",typeof(int));//創建狀態列
//把創建的三列放在DataTable中
dt.Columns.Add(dcID); dt.Columns.Add(dcName);
dt.Columns.Add(dcState);
//創建數據行。
DataRow dr=dt.NewRow();
dr["ID"]=1; dr["Name"]=A; dr["State"]=1;
//把創建的行插入到數據表「Table1」中
dt.Rows.Add(dr);
//如上,這樣就創建了一個如題所示的數據表的過程。
如果你想把bit型轉換為char型。只需要候改下插入的列即可。
如將狀態列改為:
DataColumn dcState=new DataColumn("State",typeof(char)); //此處將其改為Char類型。
//如上所示數據行
DataRow dr=dt.NewRow();
dr["ID"]=1; dr["Name"]=A; dr["State"]="是"; //把State列的值改為"是"或「否」即可。
打了半天,只希望樓主能從中體會如何自定義DataTable。
GoodLuck!!
② c#如何修改DataTable裡面的特定列的數據類型
DataTable dt = AuctionOrders.PayCarPrice(uid, payStatus, pageIndex, pageSize);
(此處空一行)
if (dt.Rows.Count > 0)
{
//新表
DataTable newDt = new DataTable();
List<string> listColums = new List<string>();
//復製表結夠
newDt = dt.Clone();
(此處空一行)
//新表中的列數據類型為Decmail的改為string
foreach (DataColumn col in newDt.Columns)
{
listColums.Add(col.ColumnName);
if (col.DataType.FullName == "System.Decimal")
{
col.DataType = Type.GetType("System.String");
}
}
(此處空一行)
foreach (DataRow row in dt.Rows)
{
DataRow newDtRow = newDt.NewRow();
foreach(DataColumn column in dt.Columns)
{
if (column.DataType.FullName == "System.Decimal")
{
newDtRow[column.ColumnName] = (Convert.ToDecimal(row[column.ColumnName]) / 10000).ToString("c") + "萬";
}
else
{
newDtRow[column.ColumnName] = row[column.ColumnName];
}
}
newDt.Rows.Add(newDtRow);
}
(此處空三行)
var obj = new { state = true, message = newDt };
Response.Write(JsonConvert.SerializeObject(obj));
}
else
{
var obj = new { state = false, message = "沒有查詢到信息" };
Response.Write(JsonConvert.SerializeObject(obj));
}
關於上述注意事項
DataTable中數據:ID NAME State1 A 12 B 03 C 0State數據列為int型,想讓它在頁面讀取顯示時,1顯示為非工作日轉工作日,0顯示為工作日轉非工作日。
詳細原因:當在做列轉換時
1,資料庫中類型和要修改成的類型不一致。
2,遇到DataTable中有數據則無法進行數據轉換的問題。
解決方法:如果直接修改當前datatable里制定列的數據會提示因為有數據所以不讓修改,而通過if判斷直接賦值又會提示數據類型不同而拒絕操作,報錯。
③ 如何在原來的datatable上修改數據
更新表中的數據
DataRow類為了在編輯數據時掛起和恢復數據行的狀態提供了3個方法:BeginEdit、EndEdit和CancelEdit方法。當編輯數據時,調用BeginEdit可以掛起任何事件(或異常),使用Items集合指定要修改的數據的列名和新值;使用EndEdit重新恢復任何事件(或異常);使用CancelEdit則可以回滾任何更改和重新激活任何事件或異常。
1. //獲取Employees表中的第4行數據
2. DataRow drEmployee = dtEmployees.Rows[3];
3.
4. drEmployee.BeginEdit();
5.
6. drEmployee("EmpName") = "John";
7. drEmployee("Title")="Sales";
8. drEmployee.EndEdit();
④ C# datatable 如何修改某一行數據的類型
數據類型已經在表的列中就規定死了。如果WC的列里要求的是string那你運算時可以選轉換運算結果出來再轉換成string類型
⑤ 怎麼修改datatable中某一列的值
/// <summary>
/// 修改數據表DataTable某一列的類型和記錄值(正確步驟:1.克隆表結構,2.修改列類型,3.修改記錄值,4.返回希望的結果)
/// </summary>
/// <param name="argDataTable">數據表DataTable</param>
/// <returns>數據表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表結構
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "age")
{
//修改列類型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["MemberId"] = row["MemberId"];
rowNew["NickName"] = row["NickName"];
//修改記錄值
rowNew["age"] = row["age"] + "歲";
dtResult.Rows.Add(rowNew);
}
//返回希望的結果
return dtResult;
}
類似 你看看
⑥ winform裡面怎麼對DataTable進行修改操作
// <summary>
/// 修改數據表DataTable某一列的類型和記錄值(正確步驟:1.克隆表結構,2.修改列類型,3.修改記錄值,4.返回希望的結果)
/// </summary>
/// <param name="argDataTable">數據表DataTable</param>
/// <returns>數據表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表結構
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "age")
{
//修改列類型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["MemberId"] = row["MemberId"];
rowNew["NickName"] = row["NickName"];
//修改記錄值
rowNew["age"] = row["age"] + "歲";
dtResult.Rows.Add(rowNew);
}
//返回希望的結果
return dtResult;
}
⑦ 修改DataTable中某列的數據類型.
/// <summary>
/// 修改數據表DataTable某一列的類型和記錄值(正確步驟:1.克隆表結構,2.修改列類型,3.修改記錄值,4.返回希望的結果)
/// </summary>
/// <param name="argDataTable">數據表DataTable</param>
/// <returns>數據表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表結構
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "RQ")
{
//修改列類型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["DTBM"] = row["DTBM"];
//修改記錄值
rowNew["RQ"] = Convert.ToDateTime(row["RQ"]).ToString("yyyy-MM-dd").ToString();
rowNew["DWBM"] = row["DWBM"];
rowNew["DWMC"] = row["DWMC"];
rowNew["YYID"] = row["YYID"];
rowNew["YYMC"] = row["YYMC"];
rowNew["YXCL"] = row["YXCL"];
dtResult.Rows.Add(rowNew);
}
return dtResult;
}
⑧ 更改DataTable某列的值。C#
樓上幾位說的方法太笨拙了
強大的datagridview怎麼可能不提供類似這樣的事件呢
CellFormatting //,就是把源數據顯示成指定格式的數據,但不影響原有的數據,即數據源映射到控制項的格式化操作
還提供了一個與之相反的操作
CellParsing //把已經修改的數據按指定格式解析回源數據
如果你的單元格是可修改的,這個事件一定要進行處理,至於具體的處理要根據你的要求來進行,使用方法你看一下它的說明提示吧.
⑨ ADO.net查詢出的DataTable表如何修改值
最好在查詢sql語句里就替換為男女
兩者都可以,為了方便datatable就可以了。但要和xml交互一般只有dataset。