使用VS2005向SQL2005插入数据,表中没有此数据显示。

RamboSZ 2012-10-23 09:57:03

namespace mdf
{
class Program
{
static void Main(string[] args)
{
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug") || dataDir.EndsWith(@"\bin\Release"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "insert into T_user(Name,Password) values('admin','999999')";
cmd.ExecuteNonQuery();
Console.WriteLine("插入成功!");
}
}
Console.ReadKey();
}
}
}


表T_user列名依次Id int Primary Key,Name char(10),Password char(10).
SQL2005以前安装的是Developer Edition,也是这个原因,表插不进数据,卸载了。最近两天反复安装不下于10次,还是没能装上,最后到microsoft官网下载Express Edition,才安装成功。结果表依旧插不进数据。求解决!较急,分不多,下次多了再给你补多得。O(∩_∩)O谢谢!
...全文
241 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
FEIcat 2012-11-18
  • 打赏
  • 举报
回复
请问,这个问题解决了么?我也有这个问题
weiyi0320 2012-10-23
  • 打赏
  • 举报
回复
最好是加到try{}catch{}里调试一下..
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

楼主可以这样调试
把你的sql直接到数据库里面去执行下 看看能不能进去
如果这样都不行 那就是sql有问题了
insert into T_user(Name,Password) values('jerry','888888')
直接去库里执行下试试 然后加个分号在末尾 难道是这个原因
insert into T_user(Name,Password) values('jerry',……
[/Quote]在库里写SQL能插入的!就是Program里无法插入进去。
lhx527099095 2012-10-23
  • 打赏
  • 举报
回复
楼主可以这样调试
把你的sql直接到数据库里面去执行下 看看能不能进去
如果这样都不行 那就是sql有问题了
insert into T_user(Name,Password) values('jerry','888888')
直接去库里执行下试试 然后加个分号在末尾 难道是这个原因
insert into T_user(Name,Password) values('jerry','888888');

反正挺奇怪的 我也不大清楚
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

如果插入都成功了 怎么会是数据库连接的问题呢
如果连接有问题 在conn.Open();的时候就会报错的哦
不知道楼主遇到什么问题 所以没办法帮你 自己仔细检查下吧
[/Quote]
先谢谢,会不会跟数据存储到表中的过程有关系?conn.Open()打开了,就是连接成功了,但插入数据时,数据库它自己没能及时保存数据呢?导致表中没有此数据呢??有没有这种情况处理方式?
lhx527099095 2012-10-23
  • 打赏
  • 举报
回复
如果插入都成功了 怎么会是数据库连接的问题呢
如果连接有问题 在conn.Open();的时候就会报错的哦
不知道楼主遇到什么问题 所以没办法帮你 自己仔细检查下吧
zfc158 2012-10-23
  • 打赏
  • 举报
回复
不错,数据库连接问题
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复

{
conn.Open();
using (SqlCommand cmd =conn.CreateCommand())
{
cmd.CommandText = "insert into T_user(Name,Password) values('jerry','888888')";
int i=0;
try
{
i = cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
Console.Write(ex);
}

Console.WriteLine(i.ToString());

}
}

测试i=1;影响行数为1,按道理应该插入成功了,会不会跟其他有关,比如数据库连接问题?
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

ExecuteNonQuery返回什么
[/Quote]
ExecuteNonQuery返回是string类型?会不会跟这个有关?是否需要是int类型才能返回SqlCommand操作影响的行数
H463428621 2012-10-23
  • 打赏
  • 举报
回复
用 Try Catch捕获异常 把 异常消息 弹出来!
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

try catch, 语句没问题
[/Quote]
是的!语句没有错,就是表中插不进数据,有点莫名其妙!唉!
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

报错什么都没有 怎么解决呢 你自己应该看看有没有错误啊
try catch下 看看错误信息啊 这样我们才好帮你哦
[/Quote]
语句是没问题的,使用SQL Server Management Studio Express能成功连接到数据库。就是不知道什么原因造成无法向表中插入数据。有点莫名其妙的感觉!
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

ExecuteNonQuery返回什么
[/Quote]
ExecuteNonQuery执行一个SqlCommand返回操作影响的行数!就是不知道什么原因造成无法向表中插入数据,纳闷了!
lhx527099095 2012-10-23
  • 打赏
  • 举报
回复
报错什么都没有 怎么解决呢 你自己应该看看有没有错误啊
try catch下 看看错误信息啊 这样我们才好帮你哦
bdmh 2012-10-23
  • 打赏
  • 举报
回复
ExecuteNonQuery返回什么
wuyq11 2012-10-23
  • 打赏
  • 举报
回复
try catch, 语句没问题
快溜 2012-10-23
  • 打赏
  • 举报
回复
啥错。
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
问题没解决!唉!结贴吧!
RamboSZ 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

啥错。
[/Quote]
语句没错,就是莫名其妙表插不进数据,会不会跟数据存储到表中的过程有关系?conn.Open()打开了,就是连接成功了,但插入数据时,数据库它自己没能及时保存数据呢?导致表中没有此数据呢??有没有这种情况处理方法?先谢谢你了!

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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