Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Asp.net C#[数据库MySQL]中使用jQuery Ajax插入数据_C#_Jquery_Mysql_Asp.net_Ajax - Fatal编程技术网

在Asp.net C#[数据库MySQL]中使用jQuery Ajax插入数据

在Asp.net C#[数据库MySQL]中使用jQuery Ajax插入数据,c#,jquery,mysql,asp.net,ajax,C#,Jquery,Mysql,Asp.net,Ajax,我需要在Asp.net C#中使用jQuery Ajax在MySql数据库中插入新记录 我在使用WebService方法时尝试过本教程: 我没有错误,但没有插入数据 我尝试过插入简单查询sql,但没有成功 你能帮我吗 先谢谢你 我的代码简化如下 WebService.cs using System; using System.Configuration; using System.Data.Odbc; using System.Web; using System.Web.Services;

我需要在Asp.net C#中使用jQuery Ajax在MySql数据库中插入新记录

我在使用WebService方法时尝试过本教程:

我没有错误,但没有插入数据

我尝试过插入简单查询sql,但没有成功

你能帮我吗

先谢谢你

我的代码简化如下

WebService.cs

using System;
using System.Configuration;
using System.Data.Odbc;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class WebService : System.Web.Services.WebService
{
    public WebService()
    {

    }

    public class userDetails
    {
        public string firstName;
    }

    [WebMethod]
    public void AddRecord(userDetails userDetails)
    {
        //SIMPLE SQL QUERY INSERT INTO
        string query = String.Format(" INSERT INTO doTable ");
        query += String.Format(" (name) ");
        query += String.Format(" VALUES ('foo'); ");

        using (OdbcConnection conn =
            new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
        {
            using (OdbcCommand cmd =
                new OdbcCommand(query, conn))
            {
                try
                {
                    cmd.Connection.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw new ApplicationException("operation failed!", ex);
                }
                finally
                {
                    cmd.Connection.Close();
                }
            }
        }
    }
}
HMTL页面:

<script src="3.2.1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function () {

        $("#activatedLink").on('click', function (e) {

            e.preventDefault();
            var userDetails = {};

            userDetails.firstName = $("#randomdirectory").val();

            var jsonData = JSON.stringify({
                userDetails: userDetails
            });

            $.ajax({
                type: "POST",
                url: "WebService.asmx/AddRecord",
                data: jsonData,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: OnSuccess,
                error: OnErrorCall
            });

            function OnSuccess(response) {
                var result = response.d;
                if (result == "success") {
                    $("#msg").html("New record addded successfully  :)").css("color", "green");
                }
                $("#randomdirectory").val("");
            }

            function OnErrorCall(response) {
                $("#msg").html("Error occurs  :(").css("color", "red");
            }

        });

    });

</script>



<form id="form1">
    <div id="Tree">
       <input type="hidden" id="randomdirectory" name="randomdirectory" value="CEF">
          <a id="activatedLink" data-id="CEF" 
           href="javascript:document.getElementById('loading').style.visibility = 'visible';
           location.href='http://...';" target="_top">
          <span>CEF</span></a>
    </div>
</form>

$(文档).ready(函数(){
$(“#activatedLink”)。在('click',函数(e){
e、 预防默认值();
var userDetails={};
userDetails.firstName=$(“#随机目录”).val();
var jsonData=JSON.stringify({
userDetails:userDetails
});
$.ajax({
类型:“POST”,
url:“WebService.asmx/AddRecord”,
资料来源:jsonData,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:一旦成功,
错误:OnErrorCall
});
函数OnSuccess(响应){
var结果=响应d;
如果(结果=“成功”){
$(“#msg”).html(“新记录添加成功:)”).css(“颜色”、“绿色”);
}
$(“#随机目录”).val(“”);
}
函数调用(响应){
$(“#msg”).html(“出现错误:”).css(“颜色”、“红色”);
}
});
});

您需要知道REST服务和SOAP服务之间的区别。NET asmx web服务是一种SOAP服务,这就是为什么使用字符串化json的普通ajax post无法工作的原因。SOAP请求规范写在您在这里创建的页面中

例如,如果您想要请求该服务,您需要创建您的身体,如:

var data = '<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <CelsiusToFahrenheit xmlns="https://www.w3schools.com/xml/">
      <Celsius>{Your Value}</Celsius>
    </CelsiusToFahrenheit>
  </soap12:Body>
</soap12:Envelope>';
之后,您可以成功地进行SOAP请求。

您还可以在aspx页面的后端创建一个静态web方法,并可以调用后端方法和插入数据
you can also create a static web method at back end of aspx page and can call back end method and insert data
use below code :

write web method at back end in aspx.cs file:
[WebMethod]

public static void AddRecord(userDetails userDetails)
{
    //SIMPLE SQL QUERY INSERT INTO
    string query = String.Format(" INSERT INTO doTable ");
    query += String.Format(" (name) ");
    query += String.Format(" VALUES ('foo'); ");

    using (OdbcConnection conn =
        new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
    {
        using (OdbcCommand cmd =
            new OdbcCommand(query, conn))
        {
            try
            {
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new ApplicationException("operation failed!", ex);
            }
            finally
            {
                cmd.Connection.Close();
            }
        }
    }
}




    <script src="3.2.1/jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function () {

            $("#activatedLink").on('click', function (e) {

                e.preventDefault();
                var userDetails = {};

                userDetails.firstName = $("#randomdirectory").val();

                var jsonData = JSON.stringify({
                    userDetails: userDetails
                });

                $.ajax({
                    type: "POST",
                    url: "pagename.aspx/AddRecord",     //here specify the name of our page where the method is present
                    data: jsonData,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: OnSuccess,
                    error: OnErrorCall
                });

                function OnSuccess(response) {
                    var result = response.d;
                    if (result == "success") {
                        $("#msg").html("New record addded successfully  :)").css("color", "green");
                    }
                    $("#randomdirectory").val("");
                }

                function OnErrorCall(response) {
                    $("#msg").html("Error occurs  :(").css("color", "red");
                }

            });

        });

    </script>



    <form id="form1">
        <div id="Tree">
           <input type="hidden" id="randomdirectory" name="randomdirectory" value="CEF">
              <a id="activatedLink" data-id="CEF" 
               href="javascript:document.getElementById('loading').style.visibility = 'visible';
               location.href='http://...';" target="_top">
              <span>CEF</span></a>
        </div>
    </form>
使用以下代码: 在aspx.cs文件的后端写入web方法: [网络方法] 公共静态void AddRecord(userDetails userDetails) { //简单SQL查询插入到 字符串查询=string.Format(“插入到doTable”); query+=String.Format(“(名称)”); query+=String.Format(“值('foo');”); 使用(ODBC连接连接)= 新的OdbcConnection(ConfigurationManager.ConnectionString[“ConnMySQL”].ConnectionString)) { 使用(odbccmd)命令= 新的OdbcCommand(查询,连接)) { 尝试 { cmd.Connection.Open(); cmd.ExecuteNonQuery(); } 捕获(例外情况除外) { 抛出新的ApplicationException(“操作失败!”,ex); } 最后 { cmd.Connection.Close(); } } } } $(文档).ready(函数(){ $(“#activatedLink”)。在('click',函数(e){ e、 预防默认值(); var userDetails={}; userDetails.firstName=$(“#随机目录”).val(); var jsonData=JSON.stringify({ userDetails:userDetails }); $.ajax({ 类型:“POST”, url:“pagename.aspx/AddRecord”//此处指定方法所在页面的名称 资料来源:jsonData, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 成功:一旦成功, 错误:OnErrorCall }); 函数OnSuccess(响应){ var结果=响应d; 如果(结果=“成功”){ $(“#msg”).html(“新记录添加成功:)”).css(“颜色”、“绿色”); } $(“#随机目录”).val(“”); } 函数调用(响应){ $(“#msg”).html(“出现错误:”).css(“颜色”、“红色”); } }); });
你调试过那个程序吗?@Imranbutt,谢谢你的回复;如果尝试webservice.asmx,我有:解析器错误描述:在解析为该请求提供服务所需的资源时出错。请查看以下特定的解析错误详细信息,并适当修改源文件。分析器错误消息:无法创建类型“WebService”。请参阅此链接
you can also create a static web method at back end of aspx page and can call back end method and insert data
use below code :

write web method at back end in aspx.cs file:
[WebMethod]

public static void AddRecord(userDetails userDetails)
{
    //SIMPLE SQL QUERY INSERT INTO
    string query = String.Format(" INSERT INTO doTable ");
    query += String.Format(" (name) ");
    query += String.Format(" VALUES ('foo'); ");

    using (OdbcConnection conn =
        new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
    {
        using (OdbcCommand cmd =
            new OdbcCommand(query, conn))
        {
            try
            {
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new ApplicationException("operation failed!", ex);
            }
            finally
            {
                cmd.Connection.Close();
            }
        }
    }
}




    <script src="3.2.1/jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function () {

            $("#activatedLink").on('click', function (e) {

                e.preventDefault();
                var userDetails = {};

                userDetails.firstName = $("#randomdirectory").val();

                var jsonData = JSON.stringify({
                    userDetails: userDetails
                });

                $.ajax({
                    type: "POST",
                    url: "pagename.aspx/AddRecord",     //here specify the name of our page where the method is present
                    data: jsonData,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: OnSuccess,
                    error: OnErrorCall
                });

                function OnSuccess(response) {
                    var result = response.d;
                    if (result == "success") {
                        $("#msg").html("New record addded successfully  :)").css("color", "green");
                    }
                    $("#randomdirectory").val("");
                }

                function OnErrorCall(response) {
                    $("#msg").html("Error occurs  :(").css("color", "red");
                }

            });

        });

    </script>



    <form id="form1">
        <div id="Tree">
           <input type="hidden" id="randomdirectory" name="randomdirectory" value="CEF">
              <a id="activatedLink" data-id="CEF" 
               href="javascript:document.getElementById('loading').style.visibility = 'visible';
               location.href='http://...';" target="_top">
              <span>CEF</span></a>
        </div>
    </form>