私は新しい値を挿入しようとしているグリッドビューを持っています。挿入を行う前に、入力された値がすでにDBに存在するかどうかを確認する必要があります(複製できない)。 重複をチェックする必要がある列は、文字列内の最大文字を受け入れることができるvarchar型です(空白を含むことができ、他の特殊文字も使用できます - 基本的には文です)。 など。特定のジョブ関連の影響を挿入します(たとえば、顧客またはクライアントサービスへの影響) この列は、varchar(max)として宣言されているため、SQLサーバーで一意にすることはできません。 C#からこのような大きな文字列をチェックできますか?C#では重複した値が入力されたかどうかを確認できます
0
A
答えて
0
主要概念は次のとおりです。しかし、あなたはAJAX呼び出しを行う必要があるだろう
ウェブサイトでprivate void dataGridView1_CellValueChanged_1(object sender, DataGridViewCellEventArgs e)
{
int columnToCheck = 0;//The index of the property/field/column you want to check
if (e.ColumnIndex == columnToCheck)
{
using (var DB = new DataContext())
{
if (DB.YourTable.Where(v => v.id == dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()).Count > 0)
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
MessageBox.Show("This key already exists");
//Return the error message to your javascript in asp.net here
}
}
}
}
、そのいずれか、使用しているのDataTable、DataGridViewののCellValueChangedに似ただろうそのイベントを見つけますイベント。そうしないと、HTML要素定義にonchanged = ""タグを追加してみてください。 <table class="table" id="tab" onchanged="eventfunction(this)"></table>
とあなたのJavaScriptで、次のような呼び出しハンドル:
function eventfunction(element)
{
//Use an ajax call to your controller from here
var id = document.getElementById(element.id).innerText; //or however you can obtain the active cells' value
$.ajax({
url: "/api/ControllerName/ActionName",
method: "POST",
data: id,
success: function (response)
{
//Handle the return call here
},
error: function (response)
{
//Or here if you return an error message
}
});
}
それとも、このように処理するjQueryのイベントを使用することができます。
$("#tab").on("onchange", function()
{
//Your code here
});
あなたのコントローラは次のようになります。
[HttpPost]
public Customer GetCustomer(string id)
{
//LINQ Where validation here
}
関連する問題
- 1. prePersist()で値が変更されたかどうか確認できますか?
- 2. 重複のためにSQLExceptionがスローされたかどうかを確認
- 3. 角度 - フィールドに入力された値が数字であるかどうかを確認します
- 4. HTMLで生成された重複した入力/入力値を保持
- 5. 入力された値が数字であることをどのように確認しますか?
- 6. PHPがテキスト入力で何かを入力したかどうかを確認します
- 7. 入力された座標が有効かどうかを確認する
- 8. 数値入力はjavascriptでのみ確認できますか?
- 9. 重複した画像を確認するにはどうすればよいですか? C#
- 10. 入力がCであるかどうかを確認する方法は?
- 11. angularJS:検証で入力が確認されました
- 12. 重複した値を確認するにはどうすればよいですか?
- 13. デルファイ・コンソール・アプリケーションのqwertyキーボードから連続した文字が入力されたかどうかをどのように確認できますか?
- 14. 入力された数字が1から31の間であるかどうかを確認するには
- 15. C#ボタンがクリックされたかどうかの確認
- 16. アレイに入力した値が、アレイの継続中に2乗されるかどうかを確認するにはどうすればよいですか?
- 17. は、ユーザーが入力したパスワードが7zipで正しいかどうかを確認します
- 18. アンドロイドでバックキーが押されたかどうかを確認しますか?
- 19. ユーザの入力がC++で回文であるかどうかを確認
- 20. フォームの送信時にテキスト入力フィールドがスキップされたかどうかを確認しますか?
- 21. プッシュ通知がiOSで配信されたかどうかはどのように確認できますか?
- 22. ユーザーの入力がperlの数値であるかどうかを簡単に確認できますか?
- 23. 入力フィールドに入力された値を確認する方法は既に利用可能ですか?
- 24. NHibernateでエンティティフィールドが変更されたかどうかを確認します
- 25. Webブラウザコントロールテキストボックスでバックスペースが押されたかどうかを確認します
- 26. 入力テキスト、ラジオ、選択ボックスがすべて入力されているかどうかを確認します。
- 27. データがユーザーによって入力されたかどうかを確認します。[VBA]
- 28. どのようにvimがコンパイルされたオプションを確認できますか?
- 29. Firebase Authは、ユーザが間違ったパスワードを入力したかどうかを確認します。
- 30. Rテーブルの列に重複値が含まれているかどうかを確認しますか?
をTheTable WHERE TheField = @ MyUniqueValue'から 'SELECT COUNT(*) 'を実行し、挿入する前に結果> 0が得られるかどうかを調べることができます。問題は 'VARCHAR(MAX)は索引付けできないため、潜在的に非常に遅い可能性があります。 –
このアプローチを先に試して、行数を取得しました。しかし、入力が一致しても、カウントは常に「0」なので、レコードを挿入しています。 – Van
それは私には分かりません。使用していたコードを表示できますか? –