【问题标题】:SQL Statement Difference Between C# and JS [closed]C#和JS之间的SQL语句区别[关闭]
【发布时间】:2019-03-14 23:24:11
【问题描述】:

我有一个有效的 C# sql 语句:

string email = string.Empty;
SqlCommand cmdFindInfo = new SqlCommand("SELECT Email FROM iDen_Login WHERE(Email=@email)", conLogin);
cmdFindInfo.Parameters.AddWithValue("@email", txtbxMembEmail.Value);
SqlDataReader rdr = cmdFindInfo.ExecuteReader();
while (rdr.Read())
{
     email = rdr["Email"].ToString();
}
rdr.Close();

ASP.NET 中的 C# 是服务器端,所以我想知道在客户端使用 JS 时这段代码是否相对相同

【问题讨论】:

  • 所以,你大概有一个 ASP.NET Web 应用程序,这意味着你有一个成熟的后端 - 绝对没有正当理由从你的前端访问你的数据库,如果只是因为 1) 它抛出窗外的任何安全性 2)这不是前端的用途。 (并且您的示例代码涉及从数据库中获取登录信息,这使它成为一个坏主意)。说真的,请重新考虑。
  • @DarthVeyda 我想做的不一定是收到电子邮件,但这是作为示例查询提供的。我正在尝试从数据库中获取所选项目的总数。 Onserverchange 仅在您的网页重新加载时才发生,而不是希望它在客户端。
  • Onserverchange - 然后是 WebForms。我对你有感觉 - 我曾经维护一个巨大的 WebForms 应用程序,如果不回发整个页面就不可能打喷嚏。那么@JamshaidKamran 发布的答案是您最好的选择——您可以添加一个 [WebMethod] 或一个 WebAPI 方法 (docs.microsoft.com/en-us/aspnet/web-api/overview/…) 并从客户端对其进行 ajax 调用。来自 Javascript 的 SQL 仍然不是可行的方法 - 大多数(如果不是全部)解决方案都适用于 NodeJS(即 服务器端 Javascript)。祝你好运!

标签: javascript c# asp.net


【解决方案1】:

您应该知道,由于多种原因,直接使用javascript 连接到您的数据库是一种不好的做法。以下是您应该如何使用jQuery 连接到数据库:

第一个更改是将您拥有的代码行复制到一个方法中,并使用[WebMethod] 属性装饰该方法。这将通过ajax 调用以通过客户端处理请求。 e.g

[WebMethod]
public static void DoSomething()
{
   string email = string.Empty;
   SqlCommand cmdFindInfo = new SqlCommand("SELECT Email FROM iDen_Login WHERE(Email=@email)", conLogin);
   cmdFindInfo.Parameters.AddWithValue("@email", txtbxMembEmail.Value);
   SqlDataReader rdr = cmdFindInfo.ExecuteReader();
   while (rdr.Read())
   {
      email = rdr["Email"].ToString();
   }
   rdr.Close();
}

然后在您的markup 页面中,您可以像下面这样调用此方法:

$.ajax({
    method: 'POST',
    url: 'MyPage.aspx/DoSomething',
    accept: 'application/json',
    contentType: 'application/json; charset=utf-8',
    success: function(){
       console.log('success');
    },
    fail: function(err){
       console.log(err);
    }
});

上面的例子可以帮助你通过ajax调用连接到sql server。 但是如果你完全想直接连接到 sql 而不是通过C#,那么我建议你通过this answer
上面的答案提供了一种连接数据库的方法,但这种方法会给你带来很大的安全风险,所以这样做是一种不好的做法。

编码愉快!

【讨论】:

    【解决方案2】:

    抱歉,您的问题可能有误。在客户端,不能有数据库查询。除非您将 WebSQL 与完整的表创建一起使用,否则您可以进行查询。好吧,或者最糟糕的选择,将查询字符串形成到数据库并将其发送到调用所在的服务器(非常不安全),在这种情况下,查询本身的语法不会有所不同。 所有编程语言中最简单的 SQL 查询也不例外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 2021-03-11
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多