急~~,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