asp.net的sql问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net的sql问题相关的知识,希望对你有一定的参考价值。

select *from abc where a="textbox1.text" and b="textbox2.text"
这是有关查询的语句,如果textbox1有写东西,textbox2没有写东西。这样就查询不出来了,因为b=“”。怎么样才能设置textbox没有写东西的时候,显示相对这个列的全部信息。或者怎么改才能达到这个效果。

加一个if判断,如下:
string strWhere="";
if(textbox1.text!=null&&textbox1.text!="")
strWhere+=" a="+textbox1.text;

if(textbox2.text!=null&&textbox2.text!="")
strWhere+=" b="+textbox2.text;

string sql="select *from abc where "+strWhere
参考技术A 判断一下即可,代码如下:
string sql="select *from abc where 1=1";
if(textbox1.text!="")

sql +=" and a="+textbox1.text+"";

if(textbox2.text!="")

sql +=" and b="+textbox2.text+"";

接下来再操作sql...
参考技术B select *from abc where a="textbox1.text" and b not null 参考技术C 都是高手那!

根据 ASP.net 中的模型值动态编辑 SQL 查询

【中文标题】根据 ASP.net 中的模型值动态编辑 SQL 查询【英文标题】:Dynamically edit SQL Query based off of model value in ASP.net 【发布时间】:2021-09-30 20:03:57 【问题描述】:

我正在使用 ASP.net 和 SQL 查询。在 SQL 中,我有类似于这些的表,名为 Departments 和 SubDepartments

DepartmentID DepartmentName
1 Department1
2 Department2
SubDepartmentID SubDepartmentName DepartmentID
1 SubDepartment1 2
2 SubDepartment2 2
3 SubDepartment3 1

在 asp.net 中,我需要运行类似于此的查询

SELECT SubDepartmentID FROM SubDepartments WHERE DepartmentID = '2'

这会给我结果

SubDepartmentID
1
2

但是,我需要像这样动态地执行此操作

SELECT SubDepartmentID FROM SubDepartments WHERE DepartmentID = '*Dynamic Value*'

在我看来,动态值是根据模型的下拉值给出的。

我尝试过在 asp.net 中查看动态编辑 SQL 查询的不同方法,但似乎没有什么对我有用。

我的目标最终是有一个部门ddl,子部门ddl,机器ddl,设备ddl,然后是问题ddl。我最终需要一个查询来读取所有这些值并仅返回属于所选部门、子部门、机器和设备的问题。只是完成部门和子部门之间的连接应该足以弄清楚如何做到这一点。

编辑: 到目前为止我的视图代码是这样的

<script src="~/Scripts/jquery/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/jquery/bootstrap.min.js"></script>
<script type="text/jscript">
    $(function () 
    $("#Departmentddl").change(function () 
    alert($('option:selected').val());
    );
    );
</script>
<div class="form-group" id="Departmentddl">
    <label asp-for="DepartmentId" class="control-label"></label>
    <select asp-for="DepartmentId" class="form-control" asp-items="ViewBag.DepartmentId"></select>

</div>
<div class="container" id="SubDepartmentddlOther">
    <div class="form-group" id="SubDepartmentddl">
        <label asp-for="SubDepartmentId" class="control-label"></label>
        <select asp-for="SubDepartmentId" class="form-control" asp-items="ViewBag.SubDepartment"></select>
    </div>
</div>

注意:ViewBag.Department 有效,但 ViewBag.SubDepartment 没有值。

我还应该补充一点,我的控制器名为“RecordEntriesController”

再次编辑:

我现在正在使用它来尝试填写下拉列表。它正在工作,但没有使用我的变量 NumberValue 和 NameLabel。我如何使这些正确?这是我的 JSON,下面是 jscript。我在控制器中创建了 JSON,因此如果格式不正确,可以对其进行更改。

"NumberValue":"5","NameLabel":"SubDepartment1","NumberValue":"8","NameLabel":"SubDepartment2"
<script type="text/jscript">
    $(function () 
        $("#ddlDepartments").change(function () 
            var selectedid = $('option:selected').val();
            if (selectedid > 0) 
                $.ajax(
                    url: "/RecordEntries/PopulateddlSubDepartments",
                    data: 
                        id: selectedid
                    ,
                    type: "Post",
                    dataType: "json",
                    success: function (data) 
                        alert(data);
                        var ddldist = $('#ddlSubDepartments');
                            $.each(data, function (NumberValue, NameLabel) 

                                 ddldist.append(
                                     $('<option></option>').val(NumberValue).html(NameLabel)
                            );
                        );

                    ,
                );
            
        );
    );
</script>

【问题讨论】:

您使用什么技术与数据库通信?是asp mvc吗? @MeysamaAsadi 是的,我正在使用 MVC 你的问题不清楚,是用entityframework还是ado? 实体框架。抱歉,这是我的第一个项目,我什至不知道其中的一些含义。我正在使用 MVC 控制器和使用实体框架的视图。如果有区别的话,它也是 asp.net Core。 你先做代码还是先做模型? 【参考方案1】:

把脚本改成这个:

url:"/Home/GetDropDownList" 替换为您的控制器和操作的名称

<script type="text/jscript">
  $(function() 
    $("#Departmentddl").change(function() 
      var selectedid = $('option:selected').val();
      if (selectedid > 0) 
        $.ajax(
          url: "/Home/GetDropDownList",
          data: 
            id: selectedid
          ,
          type: "Post",
          dataType: "Json",
          success: function(result) 
             alert(result);
          ,
          error: function() 
           
          
        );
       
    );
  );
</script>

在你的控制器中

[HttpPost]
public IActionResult GetDropDownList(int id)

   // do work
   return Json("success", JsonRequestBehavior.AllowGet);  

【讨论】:

无法识别 JsonRequestBehavior。我尝试添加using System.Web.Mvc,但这会给我的控制器的其余部分添加很多错误。还有其他方法可以添加参考吗?我不能为System.Web.Mvc使用正确的框架@ 使用 return Ok("success") 或使用 return new JsonResult("success"); 我知道我真的不擅长这个哈哈。无论如何,我一直在努力实现这一点,只是一直卡住。我曾尝试使用原始 sql,但后来遇到了将其转换为 JSON 的问题。我想我可能实际上不必使用 JSON 将数据传回视图。我可以只使用 ViewData 或 ViewBag,只要我可以在其中使用 where 子句,我还没有弄清楚。

以上是关于asp.net的sql问题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript、asp.net 和 Sql Server

ASP.NET SQL 配置

ASP.NET Core SQL 连接超时

SQL 性能问题 ASP.Net 应用程序

ASP.NET SQL 等于输入文本框

根据 ASP.net 中的模型值动态编辑 SQL 查询