菜鸟请教一个DataList的问题,先谢了~!

lichenlove 2005-07-09 07:13:42
DELETE 语句与 COLUMN REFERENCE 约束 'FK__titleauth__au_id__0519C6AF' 冲突。该冲突发生于数据库 'pubs',表 'titleauthor', column 'au_id'。语句已终止。
请问这个错误该怎么处理?
我的代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
BindDataList();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dlstAuthors.CancelCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.dlstAuthors_CancelCommand);
this.dlstAuthors.EditCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.dlstAuthors_EditCommand);
this.dlstAuthors.UpdateCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.dlstAuthors_UpdateCommand);
this.dlstAuthors.DeleteCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.dlstAuthors_DeleteCommand);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void BindDataList()
{
SqlConnection conPubs;
SqlCommand cmdSelect;
SqlDataReader dtrAuthors;

conPubs = new SqlConnection("Server=LCH;UID=sa;PWD=123;Database=Pubs");
cmdSelect = new SqlCommand("Select au_id,au_lname,phone From Authors Order by au_lname",conPubs);
conPubs.Open();
dtrAuthors = cmdSelect.ExecuteReader();

dlstAuthors.DataSource = dtrAuthors;
dlstAuthors.DataBind();

dtrAuthors.Close();
conPubs.Close();
}
private void dlstAuthors_EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
dlstAuthors.EditItemIndex = e.Item.ItemIndex;
BindDataList();
}

private void dlstAuthors_CancelCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
dlstAuthors.EditItemIndex = -1;
BindDataList();
}

private void dlstAuthors_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
SqlConnection conPubs;
string strDelete;
SqlCommand cmdDelete;
string strAuthorID;

strAuthorID = dlstAuthors.DataKeys[(int)e.Item.ItemIndex].ToString();
conPubs = new SqlConnection("Server=LCH;UID=sa;PWD=123;Database=Pubs");
strDelete = "Delete From Authors Where au_id = @authorID";
cmdDelete = new SqlCommand(strDelete,conPubs);
cmdDelete.Parameters.Add("@authorID",strAuthorID);
conPubs.Open();
cmdDelete.ExecuteNonQuery();
conPubs.Close();
dlstAuthors.EditItemIndex = -1;
BindDataList();
}

private void dlstAuthors_UpdateCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
SqlConnection conPubs;
string strUpdate;
SqlCommand cmdUpdate;
string strAuthorID;

strAuthorID = dlstAuthors.DataKeys[(int)e.Item.ItemIndex].ToString();
TextBox txtLastName = (TextBox)e.Item.FindControl("txtLastName");
TextBox txtPhone = (TextBox)e.Item.FindControl("txtPhone");
conPubs = new SqlConnection("Server=LCH;UID=sa;PWD=123;Database=Pubs");
strUpdate = "Update authors Set au_lname=@lastname,phone=@phone Where au_id=@authorID";
cmdUpdate = new SqlCommand(strUpdate,conPubs);
cmdUpdate.Parameters.Add("@authorID",strAuthorID);
cmdUpdate.Parameters.Add("@lastname",txtLastName.Text);
cmdUpdate.Parameters.Add("@phone",txtPhone.Text);
conPubs.Open();
cmdUpdate.ExecuteNonQuery();
conPubs.Close();
dlstAuthors.EditItemIndex = -1;
BindDataList();
}
编译能够运行,并且更新和取消功能都有,但是我删除页面就出现以上的那个错误。错误行数是删除代码里的:cmdDelete.ExecuteNonQuery();请各位大侠帮忙。
...全文
131 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lichenlove 2005-07-09
  • 打赏
  • 举报
回复
谢谢 hackate(兰花开香入梦境,独思佳人亦飘然!!) ,这样可以了
hackate 2005-07-09
  • 打赏
  • 举报
回复
strDelete = "Delete From Authors Where au_id = @authorID";
cmdDelete = new SqlCommand(strDelete,conPubs);
cmdDelete.Parameters.Add("@authorID",strAuthorID);
conPubs.Open();
cmdDelete.ExecuteNonQuery();
改成
strDelete = "Delete From titleauthor Where au_id=@authorID;Delete From Authors Where au_id = @authorID";
cmdDelete = new SqlCommand(strDelete,conPubs);
cmdDelete.Parameters.Add("@authorID",strAuthorID);
conPubs.Open();
cmdDelete.ExecuteNonQuery();

这样看看吧。恩
lichenlove 2005-07-09
  • 打赏
  • 举报
回复
具体代码该怎么写啊~小弟不懂啊~》
wanchao2001 2005-07-09
  • 打赏
  • 举报
回复
数据库里有主从表关系,必须先删除从表里的才能删除主表里的
hackate 2005-07-09
  • 打赏
  • 举报
回复
你是不是有把你这个表还有别的表关联在一起啊?
lichenlove 2005-07-09
  • 打赏
  • 举报
回复
具体怎么做啊~我是菜鸟,麻烦你给我讲详细一下,好吗?谢了^_^
hackate 2005-07-09
  • 打赏
  • 举报
回复
你这个可能是个关联表吧,先删除从表纪录
lichenlove 2005-07-09
  • 打赏
  • 举报
回复
怎么没有人帮我看看啊~!

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧