0

我的代码在将数据保存到数据库时遇到问题。我有一个文本框和一个组合框,但是当我在文本框中键入数据并在组合框中选择数据并单击保存时,没有任何反应,并且在编译过程中没有发现错误。我可以知道实际出了什么问题并给我一些解决方案吗?

enter code here  private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            string selectST = cbSeats.SelectedItem.ToString();
            string inputST = txtStation.Text;

            var createStation = (from createST in Setupctx.stations
                                  where createST.Seats == selectST
                                  where createST.Station1 == inputST
                                  select createST).SingleOrDefault();
            if (createStation != null)
            {
                Setupctx.stations.AddObject(createStation);
                Setupctx.SaveChanges();
                txtStation.Text = "";

                MessageBox.Show("New Station Has Been Created.");
            }
        }
    }

对你的帮助表示感谢。

4

4 回答 4

1

我同意@JamesD 确保调用事件处理程序。

此外,当您从 linq 查询中获取对象并对其进行更改时,您需要通过调用 DataContext 上的 SubmitChanges() 来保存这些更改。(我假设 Setupctx 是一个 DataContext 对象)。

阅读此处了解有关SubmitChanges()的信息

另外,我不知道您是否使用SQL。如果是这样,这里有一个很棒的教程:Linq to SQL Tutorial

于 2012-07-13T03:39:32.063 回答
1

您需要像这样创建一个新的站对象:

    if (createStation != null)
  {
    var obj = new Staion();
    obj.Seats=selectST;
    obj.Staion1=inputST;


    Setupctx.Staions.Add(obj);
    Setupctx.SubmitChanges();

    txtStation.Text = "";

     MessageBox.Show("New Station Has Been Created.");
}

更多关于LINQ To SQL 的信息在这里

于 2012-07-13T03:44:49.267 回答
1

这是正确的做法。

private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            string[] stations = StationNameList();
            station creStation = new station();
            creStation.Station1 = txtStation.Text;
            creStation.Seats = cbSeats.SelectedItem.ToString();
            if (stations.Contains(txtStation.Text))
            {
                MessageBox.Show("This Station is already been created. Please enter a new Station.");
            }
            else
            {
                Setupctx.stations.AddObject(creStation);
                Setupctx.SaveChanges();
                txtStation.Text = "";
                cbSeats.SelectedIndex = -1;
                MessageBox.Show("New Station Has Been Created.");
            }
        }
    }
于 2012-07-17T01:44:55.593 回答
0

只需检查列表:

  • 您是否确定按钮事件处理程序已连接?

当你说

没发生什么事

你的意思是事件处理程序没有被调用?您实际上也没有对从数据库中检索到的电台做任何事情。您正在将其重新添加到您从中提取的电台列表中。

于 2012-07-13T03:20:43.663 回答