【问题标题】:Primary Key Problem ASP.NET主键问题 ASP.NET
【发布时间】:2011-06-04 12:46:49
【问题描述】:

我正在为我的一个项目开发一个职业网站。我正在使用 Visual Studio 2010 和 ASP.NET Web 窗体进行编码。

我的问题是我有一个名为Companies 的表,其中包含Company ID, Company Name, Company Address 和Company Phone 列。 CompanyID 是我的主键。我正在尝试使用 Linq-to-SQL 将新公司插入此表。

当我执行以下代码时,如果数据库为空,则代码可以正常工作,但如果不是,则无法自动递增 CompanyID 并给我一个数据库错误。

我该如何解决这个问题?

提前致谢。

protected void Button1_Click(object sender, EventArgs e)
{
    Label_error.Text = "";
    Page.Validate();

    if (Page.IsValid)
    {
        CareerDataContext db = new CareerDataContext();

        Company newCompany = new Company { coName = TextBox_coName.Text, coAddress = TextBox_coAddress.Text, coPhone = int.Parse(TextBox_coPhone.Text) };
        Company fCompany = db.Companies.SingleOrDefault(company => company.coName.Equals(TextBox_coName.Text));

        if (fCompany == null)
        {
            db.Companies.InsertOnSubmit(newCompany);
            db.SubmitChanges();
        }
        else
            Label_error.Text = "This username is already in use";
    }
}

【问题讨论】:

  • WHAT 你得到(确切地)错误??您的数据库中的CompanyID 是什么数据类型??
  • 您的问题与 ASP.NET 有什么关系?如果您使用控制台程序,问题会有什么不同?

标签: asp.net sql-server visual-studio linq-to-sql


【解决方案1】:

如果您的 CompanyID 是唯一标识符,那么您可以传入 Guid.NewGuid();

例如:

Company newCompany = new Company { coID = Guid.NewGuid(), coName = TextBox_coName.Text, coAddress = TextBox_coAddress.Text, coPhone = int.Parse(TextBox_coPhone.Text) };

【讨论】:

  • 我不明白你的意思。我应该如何使用 Guid.NewGuid(); ?
  • 已解决。我重新创建了我的 DBML 并修复了。有趣但已解决 =)
猜你喜欢
  • 2018-07-04
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 2021-10-03
  • 2011-12-28
  • 2021-05-03
相关资源
最近更新 更多