DataTable 添加列、设置主键、添加行、查询、更新
2009-10-10 18:49
281 查看
DataTable 添加列、设置主键、添加行、查询、更新
对于数据库的操作,资料太多,大家也比较熟悉。但有时数据量较少,但更新频繁的变量操作,通常采用自定义结构,但自定义结构的可维护性和灵活性就比不上临时表,我们可以先用DataTable做为内存临时表,以数据库操作的方式灵活添加列、行,完成 主键设置、查询、更新等操作,还可以保存为xml文件。
假设在当前类作用域有全局对象
public static DataTable dtRefresh = new DataTable();
我们在某个测试函数中添加下面的测试代码:
为了方便存储为xml文件,需要设置表名:
dtRefresh.TableName = "刷新任务";为临时表添加表结构,既列名:
dtRefresh.Columns.Add("数量", typeof(int));
dtRefresh.Columns.Add("频率", typeof(int));
dtRefresh.Columns.Add("自动关闭延迟", typeof(int));
dtRefresh.Columns.Add("Url", typeof(string));设置其中一个列Url为主键:
DataColumn[] clos = new DataColumn[1];
clos[0] = dtRefresh.Columns["Url"];
dtRefresh.PrimaryKey = clos;为表添加一行测试记录:
注意:添加行时,应先声明行,在需要用时再赋予对象实体,这样的目的是为了突出每次添加新行时,只需赋予一个dtRefresh.NewRow()返回的对象即可,而不用重新声明一个行对象名。因为类操作是传引用,如果一个行对象名赋予一个表,再修改这个对象名的内容,表中内容会跟着修改,所以每次添加行时要重用行名但避免重用对象。
DataRow dr;
dr = dtRefresh.NewRow();
dr["数量"] = 100;
dr["频率"] = 100;
dr["自动关闭延迟"] = 100;
dr["Url"] = "http://www.baidu.com/";
dtRefresh.Rows.Add(dr);执行查询:
DataRow[] drArr = dtRefresh.Select("Url = \'http://www.baidu.com/\'");
foreach (var item in drArr)
{
txb.Text += item["Url"].ToString() + Environment.NewLine;
}根据查询条件,更新记录:
DataRow[] drArr = dtRefresh.Select("Url = \'http://www.baidu.com/\'");
drArr[0]["Url"] = "g.cn";
foreach (var item in drArr)
{
txb.Text += item["Url"].ToString() + Environment.NewLine;
}写入XML文件:
dtRefresh.WriteXml(@"d:\1.xml");
Tag标签: DataTable
来自http://www.cnblogs.com/hack/archive/2009/10/10/1580220
function PostComment(){
if($("#btn_comment_submit").val() == "修改" && $("#comment_edit_id").html !=''){
UpdateComment(60782);
}
else{
PostNewComment();
}
}
function PostNewComment() {
var content = $("#tbCommentBody").val();
if (content.length == 0) {
alert('请输入评论内容!');
return;
}
if(content.length > 4000){
alert('评论内容过长,超过4000个字数限制!当前长度:'+content.length);
return;
}
if($("#span_comment_posted").html()!='' && $("#span_comment_posted").html()==content){
alert("该评论已发表过!");
return;
}
$("#tip_comment").html("评论提交中...");
$("#span_comment_posted").html(content);
var email = $("#tbCommentEmail").val();
var author =$("#ctl05_tbCommentAuthor").val();
var comment = {};
comment.parentId = 1580220;
comment.blogId = 60782;
comment.sourceUrl = '/article/4843026.html';
comment.title = $("#span_comment_title").html();
comment.content = content;
comment.parentCommentId = $("#span_parentcomment_id").html();
$.ajax({
url: '/ws/CommentService.asmx/AddComment',
data: $.toJSON(comment),
type: "post",
dataType: "json",
contentType: "application/json; charset=utf8",
success: function(data) {
if (data.d) {
if(data.d["IsSuccess"]){
ShowCommentMsg("感谢您的回复:)");
//RereshComments2(comment.parentId);
$("#tbCommentBody").val('');
$("#divCommentShow").html($("#divCommentShow").html()+data.d["ReturnData"]);
//$("#divCommentShow").html(data.d["ReturnData"]+content.replace(/\n/g,"
")+"
");
CommentNotify(data.d["CommentID"]);
}else{
ShowCommentMsg(data.d["ReturnData"]);
}
} else {
var errorMsg = "抱歉!评论提交失败!请与管理员联系。";
if(data.d["ReturnData"]!=''){
errorMsg = errorMsg+"错误信息:"+errorMsg;
}
ShowCommentMsg(errorMsg);
$("#span_comment_posted").html('');
}
},
error: function(xhr) {
//alert(xhr.responseText);
ShowCommentMsg("抱歉!评论提交失败!请与管理员联系。");
$("#span_comment_posted").html('');
}
});
}
function SubscribeComment(){
var entryId = 1580220;
var blogId = 60782;
$("#ctl05_lnkSubscribe").html("订阅操作中...");
AjaxPost("/ws/CommentService.asmx/SubscribeComment","{entryId:"+entryId+",blogId:"+blogId+"}",OnSubscribeSuccess);
return false;
}
function OnSubscribeSuccess(response){
if(response){
$("#ctl05_lnkSubscribe").html("订阅成功");
$("#ctl05_lnkSubscribe").removeAttr("href");
$("#ctl05_lnkSubscribe").removeAttr("onclick");
}
else{
$("#ctl05_lnkSubscribe").html("订阅失败");
}
}
function CancelCommentSubscribe(){
var entryId = 1580220;
$("#ctl05_lnkSubscribe").html("取消操作中...");
AjaxPost("/ws/CommentService.asmx/CancelCommentSubscribe","{entryId:"+entryId+"}",OnCancelSubscribeSuccess);
return false;
}
function OnCancelSubscribeSuccess(response){
if(response){
$("#ctl05_lnkSubscribe").html("取消成功");
$("#ctl05_lnkSubscribe").removeAttr("href");
$("#ctl05_lnkSubscribe").removeAttr("onclick");
}
else{
$("#ctl05_lnkSubscribe").html("取消操作失败");
}
}
相关文章推荐
- DataTable 添加列、设置主键、添加行、查询、更新
- DataTable 添加列、设置主键、添加行、查询、更新
- DataTable 添加列、设置主键、添加行、查询、更新
- DataTable 添加列、设置主键、添加行、查询、更新
- DataTable 添加列、设置主键、添加行、查询、更新
- DataTable 添加列、设置主键、添加行、查询、更新
- DataTable 添加列、设置主键、添加行、查询、
- DataSet用法一:添加代码创建的表DataTable,设置主键外键,读取及修改DataSet表中数据
- SQLite数据库的添加(Create),查询(Retrieve),更新(Updata),删除(Delete)
- perl数据库添加、删除、更新、查询操作例子
- MongoDB创建表步骤,Mongo常用的数据库操作命令,查询,添加,更新,删除_MongoDB 性能监测
- DLINQ(LINQ to SQL)之调用存储过程的添加、查询、更新和删除
- 复合主键的表,查询和更新时必须也复合主键
- DataTable 创建主键PrimaryKey 增加列,行,查询,主键查询
- LINQ to SQL之面向对象的添加、查询、更新和删除
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- sql server 2005 中数据库表 的创建 ,查看表 属性,表的名称重命名,情况表中信息,删除表 ; 表中列重命名,添加新列,修改列的数据类型,删除列,设置列的主键外键
- 步步为营VS 2008 + .NET 3.5(14) - XLINQ(LINQ to XML)之针对XML文件的添加、查询、更新和删除