从某个表中获取列数据

时间:2010-12-03 19:41:50

标签: c# asp.net sql-server

我有这3张桌子

问题表

 Ques |Ans          |QuesID|LangID
__________________________________________
Ques1|Ques1's Answer|1     |1
Ques2|Ques2's Answer|2     |2

LangID是在表格语言中引用LangID的外键

语言表

LangID         |Description|LanguageID
______________________________________
1              |French     |1
2              |English    |2

语言表用于网站内容的语言

编辑语言表

LanguageID|Value|Desc
______________________
1         |fr-FR|French
2         |en-US|English US

EditorLanguage表用于RadEditor的语言

添加新的问题时: -

InsertUpdateQues存储过程在Ques Table中插入以下值: -

QuesID,Ques,Ans,LangID

现在在我的Ques Page上,我有以下内容: -

-A drop down list box to select language (this drop down is bound to EditorLanguage Table's Desc column)
-A Text Box for Ques
-Telerik RadEditor for Ques's Answer
- Submit cancel buttons

现在让我们说从下拉列表中选择的语言是法语,其语言ID = 1,值= fr-FR,desc =法语

现在如何将此LangID值传递给InsertUpdateQues存储过程。我的意思是它应该如何获得这个值?

我很困惑,因为这个外键的东西..新太ms sql

如何形成逻辑?甚至在这里发生了什么? 好吧,它会以某种方式得到LangID但是它有多好用呢?我突然感到迷茫。

1 个答案:

答案 0 :(得分:1)

为什么LanguagesEditorLanguage分开?根据您向我们展示的内容,看起来它们会更好地作为单个表格。表名和键名也不直观。

就目前而言,您必须将表单发布的LanguageID翻译为LangID表所需的Ques。这可以通过点击数据库(或缓存的查找)在代码中完成,从LangID中选择Languages,其中LanguageID等于您拥有的值。或者你可以在你正在调用的存储过程中执行此操作(因此它只需要一次访问数据库),方法是在变量中选择值并在插入/更新中使用变量,或者使用子查询插入/更新以选择值。

请注意,如果LanguagesEditorLanguage之间存在任何一对多关系,则可能会出现问题。