PDA

View Full Version : سوال: مشکل در نمایش Query Sum در label



پیام حیاتی
دوشنبه 10 فروردین 1394, 11:51 صبح
سلام
این کدهای بنده هست :

SqlConnection con = new SqlConnection("Data Source=.; Initial Catalog=count; Integrated Security=TRUE ");
con.Open();
SqlCommand com = new SqlCommand("SELECT SUM(counter) FROM Table_1", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds, "Temp");
Label1.Text = ds.Tables["Temp"].Rows[0]["counter"].ToString();
con.Close();

این خطا رو میده :

Server Error in '/' Application.


Column 'counter' does not belong to table Temp.


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System.ArgumentException: Column 'counter' does not belong to table Temp.


Source Error:




Line 20: DataSet ds = new DataSet();
Line 21: da.Fill(ds, "Temp");
Line 22: Label1.Text = ds.Tables["Temp"].Rows[0]["counter"].ToString();
Line 23: con.Close();
Line 24:


129882

تشکر

keiv@n
دوشنبه 10 فروردین 1394, 12:41 عصر
سلام دادا
شما خودتون استادین ... روش من برای اجرای فرمایش شما اینطوری بود ببخشید اگر مسقیم به مشکل شما اشاره نکردم ، روش من این بود امیدوارم کمکتون کرده باشم

dbHelperBarnameNevis.cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;


/// <summary>
/// Summary description for dbHelperBarnameNevis
/// </summary>
public class dbHelperBarnameNevis
{
public dbHelperBarnameNevis()
{
//
// TODO: Add constructor logic here
//
}
public static int sum()
{
DataTable dt = null;
try
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["testconnectionString"].ConnectionString))
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT SUM(counter) FROM sum";
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
dt = new DataTable();
da.Fill(dt);
return (int)dt.Rows[0][0];
}
}
}
}
catch (Exception ex)
{
return 0;
}
}
}


barnamenevis.js :

/// <reference path="jquery-1.11.2.min.js" />
function sum() {
$.ajax({
type: "Post",
url: "/barnamenevis/Default.aspx/sum",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d);
}, error: function () {


}
});
}


Default.aspx.cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;




public partial class barnamenevis_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{


}
[WebMethod]
public static string sum()
{
return dbHelperBarnameNevis.sum().ToString();
}
}


Default.aspx :

<%@ Page Language="C#‎‎" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="barnamenevis_Default" %>


<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="/js/jquery-1.11.2.min.js"></script>
<script src="/js/barnamenevis.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<button type="button" onclick="sum()">sum</button>
</div>
</form>
</body>
</html>

پیام حیاتی
سه شنبه 11 فروردین 1394, 00:27 صبح
دوستان علت مشکل در کوئری بنده رو نمی دونند؟

Kaziveh
سه شنبه 11 فروردین 1394, 01:17 صبح
دوستان علت مشکل در کوئری بنده رو نمی دونند؟

حاجی اینو بنویس :
SELECT SUM(counter) FROM Table_1 group by counter

پیام حیاتی
سه شنبه 11 فروردین 1394, 01:47 صبح
حاجی اینو بنویس :
SELECT SUM(counter) FROM Table_1 group by counter

توفیقی حاصل نشد،همان خطای قبلی.

aslan
سه شنبه 11 فروردین 1394, 12:05 عصر
دوستان علت مشکل در کوئری بنده رو نمی دونند؟
سلام
کد زیر را تست کنید ببینید فرقی میکنه یا نه ؟


SqlCommand com = new SqlCommand("SELECT SUM(counter) AS counter FROM Table_1", con);

پیام حیاتی
سه شنبه 11 فروردین 1394, 18:18 عصر
سلام
کد زیر را تست کنید ببینید فرقی میکنه یا نه ؟


SqlCommand com = new SqlCommand("SELECT SUM(counter) AS counter FROM Table_1", con);

درود بر شما ، مشکل با این کوئری برطرف شد.
اگر امکانش هست توضیح کوتاهی در مورد قسمت As counter بفرمائید ، تا اونجائی که من اطلاع دارم برای تغییر هدر Gridview از as در کوئری استفاده می کنند.
ممنونم.:قلب:

aslan
سه شنبه 11 فروردین 1394, 19:36 عصر
سلام
ساده است : کافیه دستور سلکت خودتون را درمحیط Sql Management اجرا و نتیجه را ببینید ... احتمالا بر خلاف انتظارتون حاصل عبارت Sum(counter) نه در متغیری بنام counter بلکه در Expr1 ذخیره و نمایش داده میشه
.... پس کافیه شما کد زیر را :


Label1.Text = ds.Tables["Temp"].Rows[0]["counter"].ToString();

به


Label1.Text = ds.Tables["Temp"].Rows[0]["Expr1"].ToString();

تغییر میدادین و یا مثل مثال قبلی عمل کنین و خودتون یک نام معنی دار با استفاده از
As
به حاصل عبارت
Sum
اختصاص بدین
امیدوارم توضیحاتم گویا بوده باشه
موفق باشید