0

解決した

ストアド プロシージャを含むテーブルからデータセットを挿入/更新/削除するLinq to SQLに問題があります。

  1. データ接続、接続を追加するときに作成された同じテーブル上のポイントを確認しました
  2. テーブルの sproc の動作を管理するために Linq-to-Sqlクラス デザイナーを使用しています (挿入、更新、削除)
  3. 異なるコード スタイルで作成された同じアプリがあり、すべて正常に動作しますが、場所の変更 (他の誰かがアプリをインストールしたとき) を .cs ファイルに含めることができないため、「正しい方法」で実行して動作させたいと考えています。すべての人のために。
  4. SQL Server 2012 および vs2010 を使用

これが私の問題です。これは、 DataContextの参照としてフォームに含まれています

private ZavrsniradDataContext poziv = new ZavrsniradDataContext();
//I've tried without private, and including this into methods where I'm  using it and nothing.

sproc に送信するためのいくつかの変数を宣言した後、テーブルを変更するために sproc を呼び出します。

poziv.p_IzmjenaMjesta(@ID, @Naziv, @PP, @IDZupanije);
poziv.SubmitChanges();

注:比較のために、変更したいデータセットのID番号を送信しています..

Alter proc [dbo].[p_IzmjenaMjesta]
@ID int,
@Naziv varchar(30),
@PP int,
@IDZupanije int
.
.
.
Update Mjesto 
SET Naziv= @Naziv, PostanskiPretinac = @PP, IDZupanije = @IDZupanije
WHERE ID = @ID;

sproc を呼び出した後、テーブルが更新され、すべての変更が表示されます。しかし、しばらくすると、すべての変更が消えます。私のテーブルでは、すべての sprocs と関数が適切に機能していると思いますが、どういうわけか私は何か間違ったことをしています。Management studio で sprocs を実行すると、すべてが完全に機能します。

私の他のアプリには、フォームの最初にこの定義が含まれており、すべてが完全に機能します。更新、挿入、削除!しかし、すべての PC でデータベースの固定の場所を作成する必要があるため、そのソリューションは必要ありません。インストールして実行したいだけです:)

public partial class Mjesta : Form
{
    ZavrsniRad poziv;

    public Mjesta()
    {
        InitializeComponent();
        poziv = new ZavrsniRad(@"c:\zavrsni_rad\Zavrsni rad.mdf");
    }

注: 異なるアプリに対して同じ sprocs/functions/dataset を使用して、異なる場所にある両方のデータベースの正確なコピーを使用していますが、一方は機能しており、もう一方は機能していません。そしてそれは私のギアを磨く:(

4

1 に答える 1