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的时候,通过这个名字来引用。所以,只要你前后是一致的,改成什么都无所谓(不要使用关键字就行)。