苏飞论坛

标题: 如何实现将一个表的信息插入另一个表?(同一数据库) [打印本页]

作者: asdp26266    时间: 2013-10-17 16:57
标题: 如何实现将一个表的信息插入另一个表?(同一数据库)
我写了一个登陆WINFORM 。数据库里写了两张表,一张是会员信息表,一张是登陆记录表。当会员登陆成功后。把会员信息表的内容插入到登陆记录表中(可重复)。如何实现。
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.              if (textBox1.Text != "" && textBox2.Text != "")
  4.             {
  5.                 string connsql = "Data Source=.;Initial Catalog=work;Integrated Security=True";
  6.                 SqlConnection conn = new SqlConnection(connsql);

  7.                 conn.Open();

  8.                 string mysql = "select * from t1 where id='" + textBox1.Text + "' and pass='" + textBox2.Text + "'";
  9.                 SqlCommand cmd = new SqlCommand(mysql, conn);
  10.                 SqlDataReader dr = cmd.ExecuteReader();
  11.                 if (dr.Read())
  12.                 {
  13.                     ;
  14.                   string cmdtext="insert into t2 (id,name,xx) select id,name,xx from t1";  //这里不懂
  15.                   
  16.                   
  17.                     Form2 f2 = new Form2();
  18.                     f2.Show();


  19.                 }              
  20.                 conn.Close();
  21.             }
  22.             else
  23.             {
  24.                 return;
  25.             }
复制代码

作者: 站长苏飞    时间: 2013-10-17 17:11
说清楚把会员的什么信息插入到登录表中。如果是全部就直接这样写
insert into t2 id,name,xx  select id,name,xx from t1

意思就是把t1 表里的id,name,xx写入到表t1对应的d,name,xx,顺序不能变,你的应该这样写
insert into 登录记录表 id,name,xx  select id,name,xx from 会员信息表
这样就行了,具体的字段是那些,怎么对应 你自己处理一下就行了

作者: asdp26266    时间: 2013-10-17 17:44
站长苏飞 发表于 2013-10-17 17:11
说清楚把会员的什么信息插入到登录表中。如果是全部就直接这样写
insert into t2 id,name,xx  select id,n ...

嗯,这个语句我懂,但我加上前面打开了一次数据库,我不懂怎么写语句了。站长,能贴几句吗?
作者: 站长苏飞    时间: 2013-10-17 17:48
这就是最基础的连接数据库,如果不太明白这些可以研究下我的这个例子
http://www.sufeinet.com/forum.php?mod=viewthread&tid=28

前面没什么可解释的吧,你写的代码你不清楚。就是连接数据库执行Sql语句,没别的,还是这代码是你复制别人的
作者: asdp26266    时间: 2013-10-17 17:50
站长苏飞 发表于 2013-10-17 17:48
这就是最基础的连接数据库,如果不太明白这些可以研究下我的这个例子
http://www.sufeinet.com/forum.php? ...

是我自己写的,可能我的逻辑思维不是很好吧。哎。。

作者: 站长苏飞    时间: 2013-10-17 17:52
string mysql = "select * from t1 where id='" + textBox1.Text + "' and pass='" + textBox2.Text + "'";

这个里面的id是不是应该修改成name啊
作者: asdp26266    时间: 2013-10-17 17:53
站长苏飞 发表于 2013-10-17 17:52
string mysql = "select * from t1 where id='" + textBox1.Text + "' and pass='" + textBox2.Text + "'"; ...

id 是登陆账号 ,name是会员信息里的姓名
作者: 站长苏飞    时间: 2013-10-17 17:54
asdp26266 发表于 2013-10-17 17:53
id 是登陆账号 ,name是会员信息里的姓名

好的那就对了,你再完善下试试效果

作者: asdp26266    时间: 2013-10-17 17:57
站长苏飞 发表于 2013-10-17 17:54
好的那就对了,你再完善下试试效果

string cmdtext="insert into t2 (id,name,xx) select id,name,xx from t1";

作者: asdp26266    时间: 2013-10-17 17:58
站长苏飞 发表于 2013-10-17 17:54
好的那就对了,你再完善下试试效果

实在很模糊~~~·

作者: 站长苏飞    时间: 2013-10-17 17:59
insert into t2 (id,name,xx) select id,name,xx from t1 这个还没有明白
作者: asdp26266    时间: 2013-10-17 17:59
站长苏飞 发表于 2013-10-17 17:54
好的那就对了,你再完善下试试效果

SqlCommand cmdAdd = new SqlCommand(cmdtext, conn);
cmdAdd.ExecuteNoQuery();

想加这两句可行吗? 我在别的电脑,没软件运行,

作者: 站长苏飞    时间: 2013-10-17 19:18
SqlCommand cmdAdd = new SqlCommand(cmdtext, conn);
cmdAdd.ExecuteNoQuery();这是执行Sql的,你可以看看我给你的例子里
作者: Koson    时间: 2013-10-17 20:34
我只是路过打酱油的。
作者: wisecn    时间: 2013-10-18 10:58
是不是两个库啊,可以这样链接
INSERT INTO 库名.dbo.表明
SELECT * FROM OPENDATASOURCE
('SQLOLEDB','链接字符串').库名.dbo.表明  




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4