小编Jam*_*ran的帖子

以一对多关系更新数据库时出现问题

我正在尝试更新数据库,但出现此错误:

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)

sql database asp.net oledb

2
推荐指数
1
解决办法
242
查看次数

我如何获得当前关注的应用程序名称

我正在使用Windows窗体,并想知道用户是否可以获得其他应用程序的名称,是否有所关注.例如,如果我运行一个应用程序,那么我应该得到最近开始并且目前正在关注的应用程序的名称.我在谷歌搜索,但没有找到任何适当的解决方案.

谢谢!

c# winforms

0
推荐指数
1
解决办法
243
查看次数

标签 统计

asp.net ×1

c# ×1

database ×1

oledb ×1

sql ×1

winforms ×1