当前位置:编程学习 > C#/ASP.NET >>

急~~,js中调用cs函数异常

搞了好久,搞不定,大家帮我看看。
js:
<SCRIPT language=JavaScript>

    function listtt(idstr, idstrna, idt) {
        var userid = "<%=ls_login_name %>";
        var count = '<%= Getcount("' + idstr + '","' + userid + '") %>';
        alert(count );
    }   
</SCRIPT>

后台:
public int Getcount(string prg,string login)
        {
            string prg1 = "",userid = "";
            string sql = "";
            SqlConnection sqlcon = new SqlConnection("Persist Security Info=True;Initial Catalog=weboa;User ID=sa;Password=sa;Data Source=.;");
            try
            {
                sqlcon.Open();
                sql = "select count(*) from sys_form_grant where form_no = '" + prg + "' and login_no='"+login+"'";
                SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
                int i = Convert.ToInt32(sqlcom.ExecuteScalar());
                sqlcom.Dispose();
                sqlcon.Close();
                return i;
            }
            catch (Exception r)
            {
                sqlcon.Close();
                return 0;
            }
        }
现在的问题是:js中传入了正确的值,是字符串型,在后台中我执行sql语句,这句sql = "select count(*) from sys_form_grant where form_no = '" + prg + "' and login_no='"+login+"'";出问题了,变量的传入好像有问题,执行不成功,去掉sql语句中where语句后就没问题,我不清楚是不是单引号,双引号的问题,弄来弄去弄不出来,请教应该怎么弄. JavaScript SQL 异常 --------------------编程问答-------------------- 你将生成的Sql语句放在sql Server中看看报什么错,就知道是什么问题了。 --------------------编程问答-------------------- 你用隐藏控件来存储这个函数的返回值,多简单的。非得搞这么复杂 --------------------编程问答-------------------- 是的。要debug 才知道!这个容易解决 --------------------编程问答-------------------- 用ajax
var count= $.ajax({
  url: "some.aspx",data:{"act":"Getcount","idstr":idstr,"userid":userid},
  async: false
 }).responseText; 


some.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
   if(Request.QueryString["act"]!=null){
        switch (Request.QueryString["act"])
        {
            case "Getcount":
                Response.Write(Getcount(Request.QueryString["idstr"], Request.QueryString["userid"]));
                break;

        }
        Response.End()
    }
}
public int Getcount(string prg,string login)
        {
            string prg1 = "",userid = "";
            string sql = "";
            SqlConnection sqlcon = new SqlConnection("Persist Security Info=True;Initial Catalog=weboa;User ID=sa;Password=sa;Data Source=.;");
            try
            {
                sqlcon.Open();
                sql = "select count(*) from sys_form_grant where form_no = '" + prg + "' and login_no='"+login+"'";
                SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
                int i = Convert.ToInt32(sqlcom.ExecuteScalar());
                sqlcom.Dispose();
                sqlcon.Close();
                return i;
            }
            catch (Exception r)
            {
                sqlcon.Close();
                return 0;
            }
        }
--------------------编程问答-------------------- 又是一个前端和后端不分的。。。

JS调用服务端的CS 方法,请使用Ajax --------------------编程问答-------------------- 路过,帮顶。 最好是前后台的代码分开写,如果不改动代码,调试一下,你的JS传过来的值是什么,然后把可执行的SQL放出来给大家分析一下。 --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,