名前エントリが重複している場合、コードは重複した名前をカウントし、次のように名前の横にカウント番号を追加します
データベースに「Andy」という名前が既にある場合、次の Andy は「Andy 1」として追加されます。
しかし問題は、別の「Andy」をデータベースに追加すると、「Andy」が見つかったときに重複がないかチェックされ、「Andy 1」になりますが、再び「Andy 1」が見つかるため、最後に「Andy 1 1」として保存されるためです。 「Andy 1」、「Andy 2」、「Andy 3」で保存する方法がわかりません
private void button0_Click(object sender, EventArgs e)
{
using (DBDataContext DB = new DBDataContext(strConnectionString))
{
Table newTable = new Table
{
Name = txtName.Text.ToString(),
Add = txtAdd.Text.ToString(),
};
var a = from b in DB.GetTable<Table>() select b;
foreach (var x in a)
{
if (x.Name == txtName.Text.ToString())
{
txtCOUNT.Text = a.Count(b => b.Name == txtName.Text).ToString();
MessageBox.Show("This Name is already Exists");
Check = txtName.Text + " " + txtCOUNT.Text;
txtName.Text = Check;
txtAdd.Text = " ";
id = x.Id;
}
}
if (txtName.Text != "" && txtAdd.Text != "")
{
DB.NTable.InsertOnSubmit(newTable);
DB.SubmitChanges();
MessageBox.Show("Name Added Successfully.", "Done!", MessageBoxButton.OK);
NavigationService.GoBack();
}
else
{
MessageBox.Show("Some essential details must be entered. Name, Add.", "Details Missing!", MessageBoxButton.OK);
}
}
}
私はカウントのように文字列 StartsWith を使用しようとしています
string Check = txtName.Text;
txtCOUNT.Text = a.Count (b => b.Name == Check.StartsWith(b.Name)).ToString();
しかし、それは私にエラーを与えません 助けてください