我正在尝试更新数据库,但出现此错误:
System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.Data.OleDb.OleDbException:您无法添加或更改记录,因为表'ItemTypes'中需要相关记录。
我不确定如何解决。
我不知道我需要展示什么,所以我只会展示大部分内容。
我试图寻找一种解决方案,发现的解决方案说这是因为我试图用不同的值来更新字段,但我不明白为什么,因为该字段被认为是相同。
这是html部分:
<asp:DropDownList ID="ItemType" runat="server">
<asp:ListItem></asp:ListItem>
</asp:DropDownList></td>Run Code Online (Sandbox Code Playgroud)
这是我在PageLoad上的代码:
if (!Page.IsPostBack)
{
DataTable dtItem = s.GetItemByIdForUser(Session["ItemCode"].ToString(),Session["Name"].ToString());
ItemCode.Text = dtItem.Rows[0][0].ToString();
ItemName.Text = dtItem.Rows[0][1].ToString();
ItemDes.Text = dtItem.Rows[0][2].ToString();
DataTable Types = s.GetAllItemsTypes();
for (int i = 0; i < Types.Rows.Count; i++)
ItemType.Items.Add(Types.Rows[i][0].ToString());
ItemType.SelectedItem.Text = dtItem.Rows[0][3].ToString();
ItemPrice.Text = dtItem.Rows[0][4].ToString();
Stock.Text = dtItem.Rows[0][5].ToString();
SellerName.Text = dtItem.Rows[0][6].ToString();
Image1.ImageUrl = "~/ProjectPictures/" + dtItem.Rows[0][8].ToString();
}
Run Code Online (Sandbox Code Playgroud)
这是我单击更新时发生的代码:
DataTable dtItem = s.GetItemByIdForUser(Session["ItemCode"].ToString(), Session["Name"].ToString());
i.ItemCode = ItemCode.Text;
i.Name = ItemName.Text;
i.Des = ItemDes.Text;
i.Type = ItemType.SelectedItem.ToString(); …Run Code Online (Sandbox Code Playgroud) 我正在使用Windows窗体,并想知道用户是否可以获得其他应用程序的名称,是否有所关注.例如,如果我运行一个应用程序,那么我应该得到最近开始并且目前正在关注的应用程序的名称.我在谷歌搜索,但没有找到任何适当的解决方案.
谢谢!