我需要在文本框中输入一些值,然后将其保存到数据库中。但如果存在重复值,则不得保存该值。
基本上,字符串lvl通过ajax从前端成功传递到WebMethod。
过程 getDuplicate 是一个简单的选择,用于检查 lvl 值是否已经存储在数据库中。而InsertObject 程序则将值插入到数据库中。如果 value(lvl) 存在,则返回该值的 ID 并存储在 Count 整数中。
问题是如果 Count 返回 id 号,则 if 语句有效,如果数据库中没有值 Count 就不会接收任何值,并且过程失败并直接进入代码的 catch 部分。
我认为当数据库中没有值时,它的返回类型存在问题。它不是 INT 什么的。请问有人可以帮忙吗?
[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);
int count = (int)cmdCount.ExecuteScalar();
if (count > 0)
{
}
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;
getDuplicate 过程
ALTER PROCEDURE [dbo].[GetDuplicate]
@ObjekatName nvarchar(20)
AS
BEGIN
SET NOCOUNT ON
SELECT TOP 1000 [ObjekatID]
,[ObjekatName]
FROM [MyApp].[dbo].[Objekat]
WHERE ObjekatName = @ObjekatName
END
千万里不及你
相关分类