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

c#入门经典第三版中24.6.1中疑问!
书中些的代码我做了更改连接我自己的数据库 代码如下
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace newhuhu123
{
  class Program
  {
  static void Main(string[] args)
  {
  SqlConnection thisconnection = new SqlConnection(@"Server=1.1.1.1;User=sa;PWD=sa;" + "Database=Test");
  SqlDataAdapter thisadapter = new SqlDataAdapter("SELECT Name,Age,PhoneNo FROM tb_Test",thisconnection);
  SqlCommandBuilder thisbuilder = new SqlCommandBuilder(thisadapter);
  DataSet thisdataset = new DataSet();
  thisadapter.Fill(thisdataset, "tb_Test");
  Console.WriteLine("改变前共有{0}",thisdataset.Tables["tb_Test"].Rows.Count);
  Console.WriteLine("请输入你姓名");
  string name = Console.ReadLine();
  Console.ReadKey();
  Console.WriteLine("请输入年龄");
  string ages = Console.ReadLine();
  Console.WriteLine("请输入电话");
  String phonenomber = Console.ReadLine();
  DataRow thisrow = thisdataset.Tables["tb_Test"].NewRow();
  thisrow["Name"]=name;
  thisrow["Age"]=ages;
  thisrow["PhoneNo"]=phonenomber;
  thisdataset.Tables["tb_Test"].Rows.Add(thisrow);
  Console.WriteLine("更改后共有{0}",thisdataset.Tables["tb_Test"].Rows.Count);
  thisadapter.Update(thisdataset, "tb_Test");
  thisconnection.Close();
  Console.WriteLine("你增加的数据是:姓名\'{0}\',年龄\'{1}\',电话\'{2}\'",name,ages,phonenomber);

  }
  }
}


程序代码没有问题 
我先说下我的表结构  
表名名为tb_Test,表中有三个键,分别是Name,Age,PhoneNo.
现在我来说我的疑问:
在第一次试验程序代码时 我没有按照书上的连接本机那个数据库 ,我连接了我远程这个tb_Test 在输入过程中 我没有理解tables的意思,将上述代码中红色部分全部写为Name,但是程序也调试成功 并且查看数据库的时候也正常。这点我一直想不明白。请高手指点下!

------解决方案--------------------
thisadapter.Fill(thisdataset, "tb_Test");
这个名字可以随便起的,老兄,
与数据库中的表名一点关系都没有的
------解决方案--------------------
thisadapter.Fill(thisdataset, "tb_Test"); 
-------------------------------------------
这里在填充DataSet的同时,给这个新生成的DataTable命名,后面在使用这个DataTable的时候,通过这个名字来引用。所以,只要你前后是一致的,改成什么都无所谓(不要使用关键字就行)。