Необходимо проверить, есть ли значение из TextBox уже в базе данных, и не нужно ли его снова сохранить в базе данных.
Это код TextBox:
<tr>
<td>
<asp:Label ID="lblProductConstruction" runat="server" Text="Product Construction:" Font-Names="Open Sans"></asp:Label></td>
<td>
<asp:TextBox ID="txtProductConstruction" runat="server" Font-Names="Merriweather" margin-Left="100px" ></asp:TextBox><br />
</td>
</tr>
<tr>
Кнопка сохранения:
<input type="button" class="button" id="myButton" value="Save"/>
Ajax при нажатии кнопки:
$(function () {
$('#myButton').on('click', function () {
var lvl = $('#MainContent_txtProductConstruction').val()
$.ajax({
type: "POST",
url: "NewProductConstruction.aspx/GetCollection",
data: JSON.stringify({'lvl': lvl }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert("Saved successfully.");
console.log(response);
location.reload(true);
},
error: function (response) {
alert("Not Saved!");
console.log(response);
location.reload(true);
}
});
});
});
WebMethod, который принимает значение и отправляет этот параметр (@ObjekatName) в базу данных:
[WebMethod(EnableSession = true)]
public static void GetCollection(string lvl)
{
string conn = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
using (SqlConnection connection = new SqlConnection(conn))
try
{
connection.Open();
SqlCommand cmdCount = new SqlCommand("getDuplicate", connection);
cmdCount.CommandType = CommandType.StoredProcedure;
cmdCount.Parameters.AddWithValue("@ObjekatName", lvl);
cmdCount.ExecuteNonQuery();
int count = (int)cmdCount.ExecuteScalar();
if (count > 0)
{
connection.Close();
}
else
{
SqlCommand cmdProc = new SqlCommand("InsertObjekat", connection);
cmdProc.CommandType = CommandType.StoredProcedure;
cmdProc.Parameters.AddWithValue("@ObjekatName", lvl);
cmdProc.ExecuteNonQuery();
//strMsg = "Saved successfully.";
}
}
catch
{
}
finally
{
connection.Close();
}
return;
Первая процедура - выбор, который пытается найти значение в базе данных.
Если этот выбор находит что-то, то Count должен быть больше 0, и это должно закрывать соединение.
И если select ничего не возвращает, тогда это новое значение должно быть вставлено в базу данных.
Я выполнил и протестировал эти хранимые процедуры, и они работают нормально.
Проблема в C #, я думаю, что я сделал что-то не так, и это не работает правильно.
Может кто-нибудь помочь мне с c # part?
КСТАТИ: Ajax работает нормально и значения принимаются WebMethod правильно
Заранее спасибо!