what database are you using? If you are using SQL Server, what are you doing with newid()? is that a random field? show your table definition, or trySqlCommand cmd = new SqlComment("insert into table1 values(newid(),'asddd',18);select @@identity as idnam", conn);
conn.Open();
int id = (int)cmd.ExecuteScalar();
conn.Close();
conn.Open();
int id = (int)cmd.ExecuteScalar();
conn.Close();
select newid() as idname
取得结果如strid后再执行
insert into table1 values (strid, 'asddd',18)
OleDbCommand cmd = new OleDbCommand(selectStr,Ole_Con);
Ole_Con.Open();
int ID =cmd.ExecuteScalar();
Ole_Con.Close();ID 得到的是已经产生的最大的一个,下一个ID = ID+1;
我也碰到了这个问题,我也是才解决的。
Sql server 2000好用,别的不清楚!
我的email : [email protected] 不懂得地方在同我联系
id : uniqueidentifier
name : varchar(50)
pwd : int
id为主键,insert的时候必须newid()自动生成
看思归老大的好像可以,
不过int值应该是string
我试试看
虽然笨是笨一点,也比没有办法好
谢了
一个很笨的方法
SqlConnection sqlcon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter dap = new SqlDataAdapter("select newid() as idname",sqlcon);
DataSet dataset = new DataSet();
dap.Fill(dataset);
SqlCommand command = new SqlCommand("insert into table1 select '"+dataset.Tables[0].Rows[0]["idname"].ToString()+"','dddd',19",sqlcon);
sqlcon.Open();
int returnstring = command.ExecuteNonQuery();
sqlcon.Close();
还是希望有更好的实现办法
期待。