2011-05-11 58 views
1

我正在使用multiview索引插入新闻详细信息。在第一个视图中,用户可以输入新闻的详细信息,然后插入到数据库中,点击下一个按钮 第二个视图给用户添加该新闻的图像(只允许3个图像),如何获取插入到表中的最后一行的主键

我在做什么问题在于第一个视图将数据插入到带有主键 newsID的表dbo.newsdetail中,而第二个视图应该使用刚刚添加到newsimages表中的新闻newsId添加相关图像。我只是不知道如何获取在第一个视图中添加的细节 的newsID,因为新闻ID正在作为这两个表的外键。任何帮助或建议将不胜感激。

static public void insertNews(string newsDescription, string newsImage, string newsTitle) 
{ 
    SqlConnection conn = new SqlConnection(ConnectionString); 
    conn.Open(); 
    SqlCommand insertNews = new SqlCommand("Insert INTO caravanNews(newsDescription, newsImage, newsTitle) VALUES ('" + newsDescription + "', '" + newsImage + "' , '" + newsTitle + "')",conn); 
    insertNews.ExecuteNonQuery(); 
    conn.Close(); 

} 
+0

您正在使用哪些DBMS?有了PostgreSQL,你可以使用'INSERT ... RETURNING ...' – 2011-05-11 10:31:30

回答

2

一个单独的SQL语句

SELECT SCOPE_IDENTITY() 

还是OUTPUT clause

INSERT MyTable (...= 
OUTPUT INSERTED.KeyCol 
VALUES (...) --Or SELECT ... FROM Another table) 

编辑:

  • 改变你的INSERT语句矿
  • 变化.ExecuteNonQuery()匹配等等= xxx.ExecuteScalar()
+0

我需要保存ID在代码后面使用另一种方法,我已经编辑了代码,你可以向我提供查询plz – 2011-05-11 10:00:54

+0

任何建设性的反馈与downvote去? – gbn 2011-05-11 14:46:07

0

当你的INSERT语句的一部分(进入第一新闻台),它运行后,执行

SELECT SCOPE_IDENTITY() 

NewsId值返回给调用者。

Ref

+0

我需要保存该ID以便在代码后面使用另一种方法,我已经编辑了代码,你可以向我提供查询plz – 2011-05-11 09:59:56