使用ADO.NET连接数据库,数据库有两个表,table1和table2,其中table1的ID字段和table2的UseID字段关联(table2有三个字段ID(自增),useid,city)。
我在添加数据的时候会将数据添加到两个表中,这时有个问题,当我使用语句strsql = "Insert into table2(city) Values('"+Textbox.Text.ToString()+"')"添加数据时,会报错,错误原因是table2的useid字段不能为空,已知table2的useid字段等于table1的ID(自增)字段,那插入的sql语句该怎么写呢??????
我在添加数据的时候会将数据添加到两个表中,这时有个问题,当我使用语句strsql = "Insert into table2(city) Values('"+Textbox.Text.ToString()+"')"添加数据时,会报错,错误原因是table2的useid字段不能为空,已知table2的useid字段等于table1的ID(自增)字段,那插入的sql语句该怎么写呢??????
SELECT UseID = SCOPE_IDENTITY()
然后在insert into table2(city,userid)values('"+Textbox.Text.ToString()+"',i)
如果不是,找到改用户id填进去
如果是,那先新增table1,然后select @@identity
将得到的值填到table2的userid
table2的字段:ID,useid, city
在gridview中显示name address phone city四个字段
同时在添加时只会添加name address phone city,这样就有一个问题,table1和table2的ID都是自增的,但useid没有数据,只有通过table1的ID得到(这两个数相同)。那么sql语句该怎么写???
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
str2 = "Select @useid = SCOPE_Identity() Insert into table2(useid,city) Values('"+@useid+"','...')";
cmd.CommandText = str2 ;
cmd.ExecuteNonQuery();
提示必须声明标量变量@useid问题出在哪呢?
select SCOPY_IDENTITY()取就ok了
SQL code
SELECT UseID = SCOPE_IDENTITY() 这句话?
我是这样写的:strsql ="Insert into table1(name,address,phone) Values('...','...','...')";
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
str2 = "Select @useid = SCOPE_Identity() Insert into table2(useid,city) Values('"+@useid+"','...')";
cmd.CommandText = str2 ;
cmd.ExecuteNonQuery();
提示必须声明标量变量@useid问题出在哪呢?
要用那个 SCOPE_IDENTITY()SCOPE_IDENTITY() 将返回在 Table1 中插入的 IDENTITY 值