0

とても簡単な方法を書きました。クラスからデータベースにデータを保存DayWeatherします。メソッドは、その日の行がテーブルに存在するかどうかを確認し、それを更新するか、新しい行を作成します。

LINQ の新しいクラスを追加し、テーブルを Server Inspector からコンストラクターに移動することでそれを行っています。新しいクラスを生成しWeatherTBLます。

メソッド自体は次のようになります。

public static void SaveDayWeather(DayWeather day)
    {
        using (DataClassesDataContext db = new DataClassesDataContext())
        {
            var existingDay =
              (from d in db.WeatherTBL
               where d.DateTime.ToString() == day.Date.ToString()
               select d).SingleOrDefault<WeatherTBL>();
            if (existingDay != null)
            {
                existingDay.Temp = day.Temp;
                existingDay.WindSpeed = day.WindSpeed;
                existingDay.Pressure = day.Pressure;
                existingDay.Humidity = day.Humidity;
                existingDay.Cloudiness = day.Cloudiness;
                existingDay.TypeRecip = day.TypeRecip;
                db.SubmitChanges();
            }
            else
            {
                WeatherTBL newDay = new WeatherTBL();
                newDay.DateTime = day.Date;
                newDay.Temp = day.Temp;
                newDay.WindSpeed = day.WindSpeed;
                newDay.Pressure = day.Pressure;
                newDay.Humidity = day.Humidity;
                newDay.Cloudiness = day.Cloudiness;
                newDay.TypeRecip = day.TypeRecip;
                db.WeatherTBL.InsertOnSubmit(newDay);
                db.SubmitChanges();
            }
        }
    }

UnitTest プロジェクトから彼に電話をかけようとしたとき:

  [TestMethod]
    public void TestDataAccess()
    {
        DayWeather day = new DayWeather(DateTime.Now);
        DataAccessClass.SaveDayWeather(day);
    }

それは、テストが正常に合格したことを書きます。しかし、表を見ると、まだ変化していません。エラーメッセージは表示されません。誰が問題を知っていますか?

PS 下手な英語で申し訳ありません。

UDP の問題は、「... dbは、ビルドごとにデバッグまたはリリースフォルダーにコピーされ、変更されたフォルダーを上書きする可能性があります」というものでした。ありがとう @Silvermind

4

3 に答える 3

6

従業員の詳細をデータベースに保存する簡単な方法を書きました。

このリンクをチェックして、LINQ C# を使用した挿入、更新、削除操作を確認してください。

     private void AddNewEmployee()
     {
        using (DataContext objDataContext = new DataContext())
        {                
            Employee objEmp = new Employee();
            // fields to be insert
            objEmp.EmployeeName = "John";
            objEmp.EmployeeAge = 21;
            objEmp.EmployeeDesc = "Designer";
            objEmp.EmployeeAddress = "Northampton";                
            objDataContext.Employees.InsertOnSubmit(objEmp);
            // executes the commands to implement the changes to the database
            objDataContext.SubmitChanges();
        }
      }

LINQ C# の概要

于 2015-06-08T14:05:15.183 に答える
0

Linq から SQL へ

        Detail tc = new Detail();


        tc.Name = txtName.Text;
        tc.Contact = "92"+txtMobile.Text;
        tc.Segment = txtSegment.Text;
        var datetime = DateTime.Now;
        tc.Datetime = datetime;
        tc.RaisedBy = Global.Username;
        dc.Details.InsertOnSubmit(tc);

        try
        {


            dc.SubmitChanges();
            MessageBox.Show("Record inserted successfully!");
            txtName.Text = "";
            txtSegment.Text = "";
            txtMobile.Text = "";

        }


        catch (Exception ex)
        {
            MessageBox.Show("Record inserted Failed!");

        }
于 2019-08-09T12:41:58.757 に答える