C# 保存ID而不是名称
我有哪个国家的名字。但我不想这样,我想存储国家ID 这是我的密码:-C# 保存ID而不是名称,c#,asp.net,oracle,C#,Asp.net,Oracle,我有哪个国家的名字。但我不想这样,我想存储国家ID 这是我的密码:- if (!string.IsNullOrEmpty(mkey)) { insertUpdateQuery = "UPDATE B_Order_new SET ShipName = :ShipName, ShipCity = :ShipCity, ShipAddress = :ShipAddress, " + "ShipCo
if (!string.IsNullOrEmpty(mkey))
{
insertUpdateQuery = "UPDATE B_Order_new SET ShipName = :ShipName, ShipCity = :ShipCity, ShipAddress = :ShipAddress, " +
"ShipCountry = :ShipCountry, OrderDate = :OrderDate, Sent = :Sent where MKEY = :MKEY";
}
else
{
insertUpdateQuery = "INSERT INTO B_Order_new (MKEY, ShipName, ShipCity, ShipAddress, ShipCountry, OrderDate, Sent) " +
"VALUES(:MKEY, :ShipName, :ShipCity, :ShipAddress, :ShipCountry, :OrderDate, :Sent)";
}
OracleCommand cmd = new OracleCommand(insertUpdateQuery, myConn);
var orderedOn = DateTime.ParseExact(orderDate, "dd/MM/yyyy", null);
cmd.Parameters.Add("MKEY", OracleType.Number).Value = decimal.Parse(mkey).ToString();
cmd.Parameters.Add("ShipName", OracleType.VarChar).Value = shipName;
cmd.Parameters.Add("ShipCity", OracleType.VarChar).Value = shipCity;
cmd.Parameters.Add("ShipAddress", OracleType.VarChar).Value = shipAddress;
cmd.Parameters.Add("ShipCountry", OracleType.VarChar).Value = shipCountry;
cmd.Parameters.Add("OrderDate", OracleType.DateTime).Value = orderedOn;
cmd.Parameters.Add("Sent", OracleType.Char).Value = true;
}
还可以查看select查询,了解如何绑定它
<asp:SqlDataSource ID="sdCombo" runat="server" ConnectionString="<%$ ConnectionStrings:OracleConn %>"
ProviderName="<%$ ConnectionStrings:OracleConn.ProviderName %>" SelectCommand="SELECT COUNTRY_ID, COUNTRY_NAME from country_test">
</asp:SqlDataSource>
我绑定dropdownlist的gridview
<obout:ComboBox runat="server" ID="ComboBoxEditor" FolderStyle="ComboBox/styles/premiere_blue"
Width="100%" Height="150" MenuWidth="175" DataSourceID="sdCombo" DataTextField="COUNTRY_NAME"
DataValueField="COUNTRY_NAME" OpenOnFocus="false">
<ClientSideEvents OnBlur="persistFieldValue" OnOpen="ComboBox_Open" />
</obout:ComboBox>
将组合框的
DataValueField=“COUNTRY\u NAME”
替换为DataValueField=“COUNTRY\u ID”
,这将把COUNTRY\u ID加载到组合框中,然后您可以将组合框的SelectedValue
分配给shipCountry
变量,用于存储国家ID
编辑:您可以将其指定为:
shipCountry=ComboBoxEditor.SelectedValue;
cmd.Parameters.Add("ShipCountry", OracleType.VarChar).Value = shipCountry;
将组合框的脚本更改为以下内容:
<obout:ComboBox runat="server" ID="ComboBoxEditor" FolderStyle="ComboBox/styles/premiere_blue" Width="100%" Height="150" MenuWidth="175" DataSourceID="sdCombo"
DataTextField="COUNTRY_NAME" DataValueField="COUNTRY_ID" OpenOnFocus="false">
<ClientSideEvents OnBlur="persistFieldValue" OnOpen="ComboBox_Open" /> </obout:ComboBox>
我已经这样做了,您能详细告诉我进一步的步骤吗。我的意思是写代码我试过你的方法,但是我在前端得到了CountryID
,但我想CountryName
在前端,它的ID要保存到数据库中我想你把COUNTRY\u ID都放在了组合框的文本和值字段中,我编辑了我的答案,您可以从中获取ComboBox的正确脚本,该脚本需要格式化为。否,我正确放置了它。请查看此处
,根据此处的OBOUT文档:,您所做的一切都是正确的,但现在如果它不起作用,则需要查看后面的完整脚本和代码,或者您可以尝试一次ASP.NET标准dropdownList。