日期:2014-05-18  浏览次数:20813 次

ADO.net 数据库连接并插入数据。是杨中科老师的视频,请高手帮忙!
程序运行后能显示插入成功和打开数据库连接成功。但过去在数据库Table1表执行后没看到插入数据,是哪里出问题了?
帮下,最好具体步骤解答,非常感谢!(在VS2010的)。



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

namespace mdf1
{
  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 Table1(id,name) values('2','asd')";
  cmd.ExecuteNonQuery();
  Console.WriteLine("插入成功");
  }
  }
  Console.WriteLine("打开数据库连接成功");
  Console.ReadKey();
  }
  }
}


------解决方案--------------------
第一,检查你连接的数据库是不是你要操作的数据库,别连错了
第二,看看你的sql语句执行正确吗, ExecuteNonQuery返回多少,从字面上看看 id的值应该是数值吧,而你插入的是带引号的
------解决方案--------------------
单步调试吧,监视一下conn.Open(),cmd.ExecuteNonQuery()的返回值。
------解决方案--------------------
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "Insert into Table1(id,name) values('2','asd')";
cmd.ExecuteNonQuery();
Console.WriteLine("插入成功");
}

把上面的修改成下面的在试试看

 conn.Open();
using (SqlCommand cmd =new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "Insert into Table1(id,name) values('2','asd')";
cmd.ExecuteNonQuery();
Console.WriteLine("插入成功");
}