首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >INSERT语句影响1行,但显示它实际上没有更新SQL数据库

INSERT语句影响1行,但显示它实际上没有更新SQL数据库
EN

Stack Overflow用户
提问于 2011-07-09 10:05:21
回答 3查看 4K关注 0票数 1

我检查了其他堆栈溢出问题,以找到答案,但我只是找不到解决这个问题的办法。我试图将字符串数据插入到SQL (本地数据库)中。

我可以从数据库中读取数据,但无论是硬编码还是尝试添加参数,我都不能插入数据。

要修改的表称为users。它有3列:IDnameemail

下面是我使用的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string connection = Properties.Settings.Default.LocalDBConnectionString;

using (var con = new SqlCeConnection(connection))
{
    con.Open();

    // (I also tried adding with parameters but couldn't get it working.)
    using (var com = new SqlCeCommand("INSERT INTO users (name, email) " +
                                      "VALUES (N'jimmy', N'email@jim.com')", con))
    {
        int numRowsAffected = com.ExecuteNonQuery();

        // This returns '1 row affected' but doesn't actually update the database
        Console.WriteLine(numRowsAffected);
        Console.ReadKey();
    }
}

虽然控制台输出1 (因为1行受影响),但当我返回数据库并进行检查时,它没有插入新数据。

我跟踪本教程,但是只有读的工作,插入或写不起作用。

我还发现了类似的堆栈溢出问题,但是使用参数仍然无法使它工作。

编辑:

我的连接字符串是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Data Source=|DataDirectory|\LocalDB.sdf

我不知道如何找到Build,它是我在控制台应用程序解决方案中创建的本地数据库,它存储在项目目录中。

我是在“调试”配置,如果这有帮助?

下面是我找到在互联网上的另一个例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SqlCeConnection con = new SqlCeConnection(Properties.Settings.Default.LocalDBConnectionString);
con.Open();

SqlCeCommand comInsert = new SqlCeCommand ("INSERT INTO users(name, email) VALUES('value 1', 'value 2')", con);
comInsert.ExecuteNonQuery();

SqlCeCommand comSelect = new SqlCeCommand("SELECT * FROM users", con);
SqlCeDataReader reader = comSelect.ExecuteReader();

while (reader.Read())
{
    Console.WriteLine("{0} {1}", reader["name"], reader["email"]);
    Console.ReadKey();
}

con.Close();

我只是复制和粘贴这个,并改变了主要的变量。此示例暂时插入数据,但当我转到Visual的服务器资源管理器并查看表时,它尚未更新。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-09 10:40:41

您确定INSERT进入的数据库和使用服务器资源管理器查看的数据库是相同的吗?

记住,我们在这里讨论的是基于文件的DB ( Server )。因此,可以将INSERT**ing转换成数据库的副本,然后查看(未更改的)原始文件。

  • DB文件是解决方案的一部分吗?如果是,它是否被复制到输出目录(例如bin\Debug)?检查相应的解决方案项的属性,如下面的屏幕截图(很抱歉它是德语的):

  • 连接字符串中的DataDirectory究竟指向哪里?如果你不确定,暂时用绝对的方法代替它,看看它是否解决了你的问题。

确保您的连接字符串确实指向您正在使用的服务器资源管理器所查看的数据库!

票数 4
EN

Stack Overflow用户

发布于 2013-04-02 15:55:09

我想问题就在这里:当您从Visual运行程序时,它连接到调试(或发布)目录中的数据库,而不是连接到项目目录中的数据库。所以,尝试使用完整路径而不是Data Source=|DataDirectory|\LocalDB.sdf,尝试这样的东西:Data Source=C:\Visual Studio 2008\Projects\MyProject\LocalDB.sdf。对我起作用了。

票数 1
EN

Stack Overflow用户

发布于 2011-10-28 03:49:19

我检查了解决方案资源管理器连接字符串并粘贴到代码文件中,解决了问题,因此对连接字符串进行更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6636513

复制
相关文章
SQL INSERT INTO 语句
SQL INSERT INTO 语句 INSERT INTO 语句用于向表中插入新记录。 SQL INSERT INTO 语法 INSERT INTO 语句可以有两种编写形式。 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可: INSERT INTO table_name VALUES (value1,value2,value3,...); 第二种形式需要指定列名及被插入的值: INSERT INTO table_name (column1,column2,column3,...
子润先生
2021/07/01
1.6K0
SQL INSERT INTO SELECT 语句
SQL INSERT INTO SELECT 语句 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
赵哥窟
2022/07/28
9780
SQL Server 存储过程生成insert语句
你肯定有过这样的烦恼,同样的表,不同的数据库,加入你不能执行select  insert 那么你肯定需要一条这样的存储过程,之需要传入表明,就会给你生成数据的插入语句。 当然数据表数量太大,你将最好用别的方式 Create proc [dbo].[spGenInsertSQL] (@tablename varchar(256)) as begin declare @sql varchar(8000) declare @sqlValues varchar(8000) set @sql =' (' set
用户1149182
2018/01/16
1.8K0
sql中select into的用法_sql语句insert into用法
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说sql中select into的用法_sql语句insert into用法,希望能够帮助大家进步!!!
Java架构师必看
2022/07/19
2.2K0
Mybatis显示SQL语句
众所周知,hibernate可以通过配置show_sql在控制台显示sql语句,Mybatis可不可以呢?当然是可以的,将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句,方便调试:
河岸飞流
2019/08/09
2K0
SQL更新语句
如果,你想更新数据库中其中某一条数据。那么你需要使用UPDATE语句。基本的UPDATE语句如下。
zy010101
2020/12/08
9920
SQL SERVER将查询数据转为INSERT语句
1、在Sql Server数据库中创建存储过程 个人感觉挺有用,Mark一下。 CREATE PROC sp_Data2InsertSQL @TableName AS VARCHAR(100) AS DECLARE xCursor CURSOR FOR SELECT name,xusertype FROM syscolumns WHERE (id = OBJECT_ID(@TableName)) DECLARE @F1 VARCHAR(100) DECLARE @F2 integer DECLA
BrianLee
2022/05/30
1.9K0
SQL SERVER将查询数据转为INSERT语句
Mysql常用sql语句(22)- insert 插入数据
https://www.cnblogs.com/poloyy/category/1683347.html
小菠萝测试笔记
2020/06/09
1.2K0
Mysql常用sql语句(22)- insert 插入数据
mybatis中insert语句动态sql篇「建议收藏」
对于入参传入的是一个user对象,对象包含了userCode,userName,userPassword,gender,address,phone这些属性, 一般我们插入对象,插入什么属性就需要在sql语句中写上对应的字段名,然后在values中写上对应的字段名的值。如果插入场景很多,比如有此插入只需两个字段,有些插入只需三个字段,那我们就需要写多个方法,多条对应的sql语句。mybatis支持动态sql,对于增、删、查、改都支持。下面我们来修改上面的示例语句。 首先对于示例代码:
全栈程序员站长
2022/09/09
3.4K0
sql server根据表中数据生成insert语句
修正了表中的字段如果是SQL中的关键字(如Order)时,生成的脚本执行会出错的bug
跟着阿笨一起玩NET
2018/09/18
1.5K0
Oracle INSERT 语句
我估计有点 SQL 基础的人都会写 INSERT 语句。下面是 SQL 标准写法。
全栈程序员站长
2022/09/16
6390
常用但容易忘记的sql语句(sql server为主)
1.说明:随机取出10条数据 a.Sql Server: select top 10 * from tablename order by newid() b.Access: Select TOP 10 * From TABLE Order By Rnd(ID) Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName) c.Mysql: Select * From TABLE Order By Rand() Limit 10 d:PostgreSQL: s
NateHuang
2018/03/14
9330
sql中的insert语句怎么写?怎么向数据库中插入数据?
sql中insert语句就是插入语句,用于将指定的数据插入至表当中,向表中增加新的一行。
吃猫的鱼Code
2023/02/02
5.6K0
SQL语句小tips(持续更新)
expr1 的值为 TRUE,则返回值为 expr2  expr1 的值为FALSE,则返回值为 expr3
千往
2018/08/30
6070
关于spring整合hibernate使用update无异常但没有效果(不输出sql语句)
在没有使用spring控制事务时,使用的是sessionFactory.openSession()。这样每个方法都会新建一个session,必须在方法中控制和关闭session。
故久
2019/09/29
1.6K0
关于spring整合hibernate使用update无异常但没有效果(不输出sql语句)
问题定位-研发说应用语句更新操作成功数据库里数据没有更新
研发在技术群里@我说数据库有问题,我就仔细询问了相关的情况,他们说应用的操作更新数据库成功了(事务也提交成功)而数据库中的数据确没有更新,他们就断定数据库出了问题,并拿出了应用日志为证据
wangwei-dba
2021/03/02
9220
问题定位-研发说应用语句更新操作成功数据库里数据没有更新
oracle insert select语句
insert into 表1(列1,列2.。。。)select 列1,列2.。。。 from 表2
全栈程序员站长
2022/09/09
3.7K0
sql数据库查询语句大全_sql基本语句大全
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/05
2.1K0
数据库SQL语句大全——最常用的SQL语句
检索数据: 检索单个列: SELECT pname FROM product 检索多个列: SELECT pname,market_price,is_hot FROM product 检索所有列: SELECT * FROM product 过滤检索结果中的重复数据: SELECT DISTINCT market_price FROM product DISTINCT关键字: 1、返回不同的值,使用时放在列名的前面 2、多查询一个及以上列时,除非你查询的所有列的数据都不同,否则所有行都将被检索出来
说故事的五公子
2019/09/29
3K0
mysql insert sql
如果数据检索是最重要的,你可以通过在INSERT 和 INTO 之间添加关键词LOW_PRIORITY 让mysql降低insert语句的优先级:INSERT LOW_PRIORITY INTO,这种方法同意适用于UPDATE 和 DELETE
全栈程序员站长
2022/03/07
2.2K0

相似问题

更新MySQL返回受影响的行,但实际上没有更新数据库

12

Sql Alchemy insert语句未能插入,但没有错误

11

PDO说它更新了表,但实际上它没有

11

SQL Insert语句(数据库)

19

Delphi 7 SQL参数在Select语句中找到,但没有Insert语句

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文