不知为何更新不了数据库?

powre 2009-06-23 06:46:14
本人是个菜鸟,在做练习的时候,不知为何更新不了数据库,查了很久也查不出来。程序如下:

public static SqlDataAdapter sqldadp;
public static DataTable dt;
protected void Button2_Click1(object sender, EventArgs e)
{

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=localhost; Initial Catalog=Northwind; Integrated Security=True;"; //连接Northwind数据库
conn.Open();
sqldadp.SelectCommand.Connection = conn;
dt.Rows[0]["ContactName"] = ContactName.Text.ToString();
dt.Rows[0]["CompanyName"] = CompanyName.Text.ToString();
dt.Rows[0]["Phone"] = Phone.Text.ToString();
dt.Rows[0]["Address"] = Address.Text.ToString();
dt.AcceptChanges();
sqldadp.Update(dt);
Response.Write("数据更新成功!");

}


测试时也能显示“数据更新成功!”,但就是数据库里面的数据没有改变。我看了很久,查不出错在哪?大家帮忙看看吗?
...全文
20 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
net_xiaojian 2009-06-23
  • 打赏
  • 举报
回复
sqldadp.Update(dt);
Response.Write("数据更新成功!");

这两行你怎么执行你是否明白?

--->

bool flag = sqldadp.Update(dt);

if(flag) Response.Write("数据更新成功!");
else Response.Write("数据更新失败!");
YL_Show 2009-06-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 chen_ya_ping 的回复:]
添加这段代码要不然你没有UpdateCommand就不能个更新SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);

还有就是
dt.AcceptChanges();
sqldadp.Update(dt);

应该写成
sqldadp.Update(dt);
dt.AcceptChanges();
具体的信息可以参考http://www.cnblogs.com/oec2003/archive/2007/08/09/848550.html
[/Quote]
chen_ya_ping 2009-06-23
  • 打赏
  • 举报
回复
添加这段代码要不然你没有UpdateCommand就不能个更新SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);

还有就是
dt.AcceptChanges();
sqldadp.Update(dt);

应该写成
sqldadp.Update(dt);
dt.AcceptChanges();
具体的信息可以参考http://www.cnblogs.com/oec2003/archive/2007/08/09/848550.html
emoheshang 2009-06-23
  • 打赏
  • 举报
回复
应该是你的页面刷新了吧,把你要改的值,都还原成开始从数据库读出的值了吧
locoasta 2009-06-23
  • 打赏
  • 举报
回复

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=localhost; Initial Catalog=Northwind; Integrated Security=True;"; //连接数据库
conn.Open();
sqldadp = new SqlDataAdapter("Select CustomerID, ContactName,CompanyName,Phone,Address From Customers Where CustomerID ='" + TCoustomerID.Text + "'", conn);
dt = new DataTable();
sqldadp.Fill(dt);
sqldadp.InsertCommand = new SqlCommand("insert into tablename (ContactName,CompanyName,Phone,Address) values (@ContactName,@CompanyName,@Phone,@Address) ");
sqldadp.InsertCommand.Parameters.Add("@ContactName", SqlDbType.NVarChar, 15, "ContactName");
sqldadp.InsertCommand.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 15, "CompanyName");
sqldadp.InsertCommand.Parameters.Add("@Phone", SqlDbType.NVarChar, 15, "Phone");
sqldadp.InsertCommand.Parameters.Add("@Address", SqlDbType.NVarChar, 15, "Address");
DataRow row = dt.NewRow;
row["ContactName"] = "a";
row["CompanyName"] = "b";
row["Phone"] = "c";
row["Address"] = "d";
dt.Rows.Add(row);
//dt.AcceptChanges();
sqldadp.Update(dt);
Response.Write("数据更新成功!");

没东西测试
建议你看看 msdn 的SqlDataAdapter
一直觉得这玩意不怎么好用。没用过
上面写的没数据库测试
locoasta 2009-06-23
  • 打赏
  • 举报
回复
你insert插入数据的时候的的 InsertCommand 咧?
你这个SqlDataAdapter在插入数据的时候获取的是 SelectCommand
数据库也不知道你要做什么啊
ChargeForward 2009-06-23
  • 打赏
  • 举报
回复
有主键吗?
powre 2009-06-23
  • 打赏
  • 举报
回复
哦,刚才忘了发另一个控件的,所以没显示到SQL语句。现在发该页面全部的:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
public static SqlDataAdapter sqldadp;
public static DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=localhost; Initial Catalog=Northwind; Integrated Security=True;"; //连接数据库
conn.Open();
sqldadp = new SqlDataAdapter("Select CustomerID, ContactName,CompanyName,Phone,Address From Customers Where CustomerID ='"+ TCoustomerID.Text +"'" ,conn );
SqlCommandBuilder sb = new SqlCommandBuilder(sqldadp);
dt = new DataTable();
sqldadp.Fill(dt);
ContactName.Text = dt.Rows[0]["ContactName"].ToString();
CompanyName.Text = dt.Rows[0]["CompanyName"].ToString();
Phone.Text =dt.Rows[0]["Phone"].ToString();
Address.Text = dt.Rows[0]["Address"].ToString();
}


protected void Button2_Click1(object sender, EventArgs e)
{

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=localhost; Initial Catalog=Northwind; Integrated Security=True;"; //连接数据库
conn.Open();
sqldadp.SelectCommand.Connection = conn;
dt.Rows[0]["ContactName"] = ContactName.Text.ToString();
dt.Rows[0]["CompanyName"] = CompanyName.Text.ToString();
dt.Rows[0]["Phone"] = Phone.Text.ToString();
dt.Rows[0]["Address"] = Address.Text.ToString();
dt.AcceptChanges();
sqldadp.Update(dt);
Response.Write("数据更新成功!");

}
}




麻烦大家了!!
吕津 2009-06-23
  • 打赏
  • 举报
回复
帮顶。
SQL77 2009-06-23
  • 打赏
  • 举报
回复
你的SQL语句呢??PRINT看看
peng_weida 2009-06-23
  • 打赏
  • 举报
回复
加上 try catch 断点调试
关系型数据库和NoSQL数据库 什么是NoSQL 大家有没有听说过“NoSQL”呢?近年,这个词极受关注。看到“NoSQL”这个词,大家可能会误以为是“No!SQL”的缩写,并深感愤怒:“SQL怎么会没有必要了呢?”但实际上,它是“Not Only SQL”的缩写。它的意义是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。 为弥补关系型数据库的不足,各种各样的NoSQL数据库应运而生。 为了更好地了解本书所介绍的NoSQL数据库,对关系型数据库的理解是必不可少的。那么,就让我们先来看一看关系型数据库的历史、分类和特征吧。 关系型数据库简史 1969年,埃德加•弗兰克•科德(Edgar Frank Codd)发表了划时代的论文,首次提出了关系数据模型的概念。但可惜的是,刊登论文的《IBM Research Report》只是IBM公司的内部刊物,因此论文反响平平。1970年,他再次在刊物《Communication of the ACM》上发表了题为“A Relational Model of Data for Large Shared Data banks”(大型共享数据库的关系模型)的论文,终于引起了大家的关注。 科德所提出的关系数据模型的概念成为了现今关系型数据库的基础。当时的关系型数据库由于硬件性能低劣、处理速度过慢而迟迟没有得到实际应用。但之后随着硬件性能的提升,加之使用简单、性能优越等优点,关系型数据库得到了广泛的应用。 通用性及高性能 虽然本书是讲解NoSQL数据库的,但有一个重要的大前提,请大家一定不要误解。这个大前提就是“关系型数据库的性能绝对不低,它具有非常好的通用性和非常高的性能”。毫无疑问,对于绝大多数的应用来说它都是最有效的解决方案。 突出的优势 关系型数据库作为应用广泛的通用型数据库,它的突出优势主要有以下几点: 保持数据的一致性(事务处理) 由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处) 可以进行JOIN等复杂查询 存在很多实际成果和专业技术信息(成熟的技术) 这其中,能够保持数据的一致性是关系型数据库的最大优势。在需要严格保证数据一致性和处理完整性的情况下,用关系型数据库是肯定没有错的。但是有些情况不需要JOIN,对上述关系型数据库的优点也没有什么特别需要,这时似乎也就没有必要拘泥于关系型数据库了。 关系型数据库的不足 不擅长的处理 就像之前提到的那样,关系型数据库的性能非常高。但是它毕竟是一个通用型的数据库,并不能完全适应所有的用途。具体来说它并不擅长以下处理: 大量数据的写入处理 为有数据更新的表做索引或表结构(schema)变更 字段不固定时应用 对简单查询需要快速返回结果的处理 。。。。。。 NoSQL数据库 为了弥补关系型数据库的不足(特别是最近几年),NoSQL数据库出现了。关系型数据库应用广泛,能进行事务处理和JOIN等复杂处理。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。 易于数据的分散 如前所述,关系型数据库并不擅长大量数据的写入处理。原本关系型数据库就是以JOIN为前提的,就是说,各个数据之间存在关联是关系型数据库得名的主要原因。为了进行JOIN处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散。相反,NoSQL数据库原本就不支持JOIN处理,各个数据都是独立设计的,很容易把数据分散到多个服务器上。由于数据被分散到了多个服务器上,减少了每个服务器上的数据量,即使要进行大量数据的写入操作,处理起来也更加容易。同理,数据的读入操作当然也同样容易。 提升性能和增大规模 下面说一点题外话,如果想要使服务器能够轻松地处理更大量的数据,那么只有两个选择:一是提升性能,二是增大规模。下面我们来整理一下这两者的不同。 首先,提升性能指的就是通过提升现行服务器自身的性能来提高处理能力。这是非常简单的方法,程序方面也不需要进行变更,但需要一些费用。若要购买性能翻倍的服务器,需要花费的资金往往不只是原来的2倍,可能需要多达5到10倍。这种方法虽然简单,但是成本较高。 另一方面,增大规模指的是使用多台廉价的服务器来提高处理能力。它需要对程序进行变更,但由于使用廉价的服务器,可以控制成本。另外,以后只要依葫芦画瓢增加廉价服务器的数量就可以了。 不对大量数据进行处理的话就没有使用的必要吗? NoSQL数据库基本上来说为了“使大量数据的写入处理更加容易(让增加服务器数量更容易)”而设计的。但如果不是对大量数据进行操作的话,NoSQ
ORACLE数据库智能化管理系统2012 软件介绍 序言 ORACLE数据库管理们: 你们还在为处理日常大量数据,天天写过多的SQL语句而烦恼吗? 还在为由于没有面面具到的软件来汇制想要的日常数据报表而烦恼吗? 还在为查找帐务不平的数据或数据重复,而不知是哪些数据错误或重复,造成不能继续操作,而费时费力手工查找问题所在而烦恼吗? 还在为数据要多字段大批量处理或指定满足过多条件,处理成特定数据而手工劳动烦恼吗? 还在为两表数据多字段相关联,要批量修改其一表多字段数据成另一表数据值,而不知怎样做而烦恼吗? 还在为查找数据库安全情况,不知权限分配情况如何?查起来又费时费力,而烦恼吗? 还在为数据库安全情况,表或角色权限批量授权或撤权,操作起来又费时费力,而烦恼吗? 还在为需要多表数据综合计算才能求得到想要的数据结果,而书写SQL语句书写起来复杂而烦恼吗? 还在为达到求某种数据值需要多表数据关联起来后得到结果重复,想去除多余行值,单独书写的SQL语句又无法解决而频繁手工操作或通过编写软件才能实现想要的结果而烦恼吗? 还在为查看数据库会话情况及死锁情况,想批量处理这些死锁及断开不必要空闲会话,一一处理而手功劳动吗? 还在为日常数据处理分析,从查询结果中,求出可自定任意选择行及数字型字段数据求合,而手工一行行、一列列累加求和吗? 还在为某种数据不同类别所占总数比例及各多少?而手工累加一一计算吗?本系统使用了ABC方法计算得出结果。 查询数据条件参数,智能化表字典辅助批量字段输入功能,使您的工作简单而更加轻松,用起来更加顺手。 查询或导入的数据结果智能化创建计算字段和行列分类合计,从而进一步使结果数据更加理想化,省去了您宝贵的数据计算时间。 智能化SQL历史语句保存和历史SQL智能注解查询功能,节省了您智能化重复创建和查询SQL语句的时间,提高了您的工作效率。 数据库状态及运行情况综合查看,使您了解ORACLE运行状况及空间、日志归档、数据文件等使用情况更直观,并可智能生成数据库热备份脚本和备份恢复方案,为您的数据库保驾护航,使您高枕无忧。 本系统可执行SQL分组语句后,再对结果某值代码变为相对应名称,从而提高了数据库对SQL语句执行性能,减轻了因关联表太多查询,造成数据库性能下降带来的负担。 本系统可对执行SQL语句的结果集批量逐行处理多字段值一起做为检索条件,从它表中取出想要的多字段(值或计算结果)数据对相应的目标多字段进行赋值,从而简化了SQL语句书写难度,减少查询时间,提高了综合性能。 批量数据比较功能,增加了数字型字段4种(左右两边数据加减乘除)处理方式和4种行数据处理(左右两边互移或互复制行),可从数据源复合查询结果数据与目标数据进行运算,达到想要的结果等。 数据窗口右键菜单功能整合多种处理,功能强大,简单易操;重复数据可自动处理成唯一,也可自行处理;可自定义选择从查询结果集中的数行,进行数据求合及自定义图形项目分析;字段的10多种属性设置;数据窗口自创帮你省去建表才能进行数据处理的麻烦;各行数据在总数据所占的比例,一目了然,省去你一一计算。 生成可定义标准化数据代码;补足不足数据代码位数; 自由SQL语句查询参数多字段批量字典输入; 外部数据批量进行赋值处理; 数据列名可汉字后,导出成xls格式。 自由选择更新表数据方式,减少对数据库过多无关字段操作。 可根据查询结果自动生成IN、DECODE等多形式函数的参数,省去你查询手工输入上述函数多参数时的痛苦。 批量处理查询结果集中数据去除多余前后空格,增加对多字段字符串数据标准化,替换或去除数据中任意数据位数据,使其达到你想要的数据。 自动创建并可导出全数据库同义词创建语句,省去了你书写的麻烦。 您可以自由定制数据过滤、排序等条件、打印预览并可自动缩放到整张纸大小打印、打印数据行、列自己选定,打印设置自由灵活。 自动生成序列数据,切换数据库,无须退出系统。 人不在时,系统有锁定功能,防止别人动您数据! 您可以自动生成带分组小计的数据查询结果,使用你看的数据更加清晰。 分组查询条件SQL语句(带不带分组小计随您)智能化生成,只需您动几下鼠标就可完成。 交叉数据报表智能化生成,省去你为了一时的数据,而劳命伤财地去开发系统。 过程、触发器、表结构、同义词、视图、在线会话等查看一目了然。 给有关部分下达通知,消息框自动弹出。 。。。。。。。 本系统以智能化语句书写及批量处理数据及图形分析数据为特点,可以解决你的上述及未述后顾之忧,尽量把处理数据的主动权让给用户{本系统许多功能,只要你灵活运用,就可以得到意想不到的收获!},拥有了它,从此让你可以轻松、灵活对待日常数据库数据管理处理工作。 还等什么?赶快与我联系13856992267、QQ:23807773要求试用或购买吧?价格联系时谈! 本系统还可以根据用户需求,增加共性功能。{感谢您的支持及来电来函提出您的宝贵建议,为本系统更加地完善,贡献出您的一份力量!}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧