程序运行没有报错,完全正确,为什么就是没插入数据库里

h2006030611 2012-08-17 02:28:33
运行结果正常,没报错,可查询数据库时没有数据,没法向数据库插入数据,求帮助,求帮助求帮助求帮助....新手!不胜感激...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;


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|\MyTable.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
Console.WriteLine("连接成功");
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText="insert into mytable(stno,stname)values('35','jim')";
cmd.ExecuteNonQuery();
Console.WriteLine("成功");

}



}
Console.ReadKey();
}
}
}

...全文
453 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
litengfei0020 2012-08-17
  • 打赏
  • 举报
回复
你看下 数据库所在文件夹权限有没有 我也遇到过这样的情况~就是权限的问题
Tail_Zhou 2012-08-17
  • 打赏
  • 举报
回复
用SQL自带的监视SQL Sever Profiler工具监测一下传到SQL的语句,把监测到的语句放到SQL再执行一次看看是否执行成功
  • 打赏
  • 举报
回复
估计你是看错了表,或者附加的位置和操作的数据库不统一

其实呢,最简单的验证就是,你基于此,写一个查询,看是否能查出你所添加的记录
monkeyHere 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

控制台上显示:连接成功,插入成功
但打开数据库时仍然看不到插入的数据,
而且int num=cmd.ExecuteNonQuery();中的num的值是1
[/Quote]
num是1 说明插入成功, 去看看数据库查询的是不是同一个表~
h2006030611 2012-08-17
  • 打赏
  • 举报
回复
还是没找到问题的答案
h2006030611 2012-08-17
  • 打赏
  • 举报
回复
按大家的建议去做了,应该有插入,可能是数据库那边出的问题,程序是没错的!!谢谢大家...
木头小菜 2012-08-17
  • 打赏
  • 举报
回复
检查下cmd.ExecuteNonQuery();的返回值 看看是否真的插入
h2006030611 2012-08-17
  • 打赏
  • 举报
回复
控制台上显示:连接成功,插入成功
但打开数据库时仍然看不到插入的数据,
而且int num=cmd.ExecuteNonQuery();中的num的值是1
若-相惜 2012-08-17
  • 打赏
  • 举报
回复
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
monkeyHere 2012-08-17
  • 打赏
  • 举报
回复
Console.WriteLine("连接成功");


这个输出没?

try
{
comm_a.ExecuteNonQuery();
comm_b.ExecuteNonQuery();
//trans.Commit();

Console.WriteLine("正确处理...");
}
catch (Exception)
{
//trans.Rollback();
Console.WriteLine("处理错误..."); ;
}
finally
{
Console.WriteLine("处理结束");
}
这样加入判断会比较好判断错误在哪
Net攻城狮 2012-08-17
  • 打赏
  • 举报
回复
设置为SQL文本 cmd.CommandType = CommandType.Text;
Net攻城狮 2012-08-17
  • 打赏
  • 举报
回复
int num = cmd.ExecuteNonQuery();
输出下 num 受影响行数 就是 你插入了多少行

另外 打开连接要关闭
cmd.Parameters.Clear();
conn.Close();
conn.Dispose();

62,266

社区成员

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

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

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

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