我无法在Visual Studio的列中看到变量的附加值,但我在SQL服务器中看到它们。为什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我无法在Visual Studio的列中看到变量的附加值,但我在SQL服务器中看到它们。为什么?相关的知识,希望对你有一定的参考价值。
我正在创建一个Visual Studio项目,用于从MS SQL服务器添加和读取客户。我无法看到通过Visual Studio获得的值。
这是SQL代码:
create Table Person
(
Id int PRIMARY KEY,
FirstName varchar (15),
LastName varchar (15),
TaxNbr int,
BirthDate DATETIME,
AktivStatus varchar (15),
);
这是C#的一部分,我在为客户添加新值:
private void Button_AddCustomer(object sender, RoutedEventArgs e)
{
Person customer = new Person();
int number;
customer.FirstName = FirstName.Text.Trim();
customer.LastName = LastName.Text.Trim();
if (int.TryParse(TaxNbr.Text, out number) == false) MessageBox.Show("Must add a valid tax number");
if (number < 0 || number > 999) MessageBox.Show("Invalid Tax Number. Must be between 0 and 999");
else customer.TaxNbr = number;
customer.BirthDate = BirthDate.DisplayDate;
if (Aktiven.IsChecked == true) customer.AktivStatus = "Aktiven";
if (Neaktiven.IsChecked == true)
{
customer.AktivStatus = "Neaktiven";
}
CustomerClass.AddCustomer(customer);
DialogResult = true;
}
我已将其与SQL类连接:
public static class CustomerClass
{
#region
public static void AddCustomer(Person customer)
{
using (CustomerDataContext conn = new CustomerDataContext())
{
conn.Persons.InsertOnSubmit(customer);
conn.SubmitChanges();
}
}
#endregion
}
请帮忙,我是初学者:)
答案
问题是你创建的每个人都会有一个id为0,并且因为数据库中的ID列没有标记为身份,所以SQL Server会尝试在每个人插入时插入值0,所以第一次成功并且插入id = 0的新人,但它会第二次失败,因为已经有一个id为0的人需要将pk标记为身份,这样SQL Server将自动处理id值,你甚至不会需要从你的C#代码中发送它的值
或者您可以自己管理ID,并确保不在此列中插入任何不重复的值,这是不推荐的
以上是关于我无法在Visual Studio的列中看到变量的附加值,但我在SQL服务器中看到它们。为什么?的主要内容,如果未能解决你的问题,请参考以下文章
从属项目在 Visual Studio 的引用中无法看到库中的标头