11 messaggi dal 27 gennaio 2021
Buonasera a tutti,
premessa, sono alle prime armi e sto cercando di creare una sorta di intranet con informazioni che trovo in rete.
Ho creato una pagina clienti, inserito un griedview e all'interno di esso alcune colonne con i dati dei clienti e come ultimo un collegamento che punta allo stesso ID della riga selezionata ma che mi porta su una nuova pagina con tutti i dettagli.

il codice è il seguente

Pagina dettagli

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;

namespace IntraWEB
{
public partial class ClieDettagli : System.Web.UI.Page
{

protected void ButtonCLIE_Click2(object sender, EventArgs e)
{
HttpContext.Current.Response.Redirect("~/clienti.aspx", false);
}

protected void Page_Load(object sender, EventArgs e)
{
string mycon = "Data Source=localhost\\SQLEXPRESS;Initial Catalog=IntraWEB;Integrated Security=True";

String myquery = "select * from CLIENTE where CLIE_ID=" + Request.QueryString["CLIE_ID"];
SqlConnection sqlConnection = new SqlConnection(mycon);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = myquery;
cmd.Connection = sqlConnection;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);

if (ds.Tables[0].Rows.Count > 0)
{
TextBox1.Text = ds.Tables[0].Rows[0]["CLIE_ID"].ToString();
TextBox2.Text = ds.Tables[0].Rows[0]["CLIE_Indirizzo"].ToString();
}
sqlConnection.Close();
}
}
}
se lancio il IIS express si blocca su da.Fill(ds); e mi da il seguente errore ->System.Data.SqlClient.SqlException: 'Sintassi non corretta in prossimità di '='.'

qualcuno sa darmi qualche soluzione?
grazie in anticipo
Andrea
C'e' qualche cosa di sbagliato in un campo dopo "=".

Premesso che non conosco C# ma dall'esperienza che ho in VB direi che
la cosa piu' probabile e' che il campo CLIE_ID contenga valori errati, tipo un valore alfanumerico quando dovrebbe essere un numero o cose del genere

Quindi controlla bene che la stringa della query venga formattata correttamente

Ciao

Alberto
256 messaggi dal 30 novembre 2004
Hai provato a vedere in debug dove si ferma di preciso?
Controlla cosa scrive qui:
String myquery = "select * from CLIENTE where CLIE_ID=" + Request.QueryString["CLIE_ID"];
poi provala sul db e vedi se ti da errore
7 messaggi dal 28 gennaio 2021
Io proverei anche a cambiare i delimitatori di stringa p.e.
String myquery = "select * from CLIENTE where CLIE_ID=" + Request.QueryString['CLIE_ID'];

Inoltre valuta se c'è corrispondenza (intero/varchar) tra CLIE_ID e Request.QueryString['CLIE_ID']

Incrociamo le dita :-))
11 messaggi dal 27 gennaio 2021
Ciao a tutti,
innanzitutto un grazie enorme !!!

vi aggiorno...ho provato i diversi consigli, inserito, spostato apici ovunque ma ancora nulla....
anche su sql se eseguo una query mi da errore.

la colonna CLIE_ID è una chiave primaria impostata INT e con incremento automatico.
penso che come suggerito il problema sia tra intero/varchar... devo solo capire come verificare la parte di programmazione

Grazie ancora e vi tengo aggiornati
PS consigli sempre ben accetti :-p
7 messaggi dal 28 gennaio 2021
Quella istruzione, è la seconda istruzione del metodo Load. Sei sicuro che Request.QueryString['CLIE_ID'] abbia già un valore ?

E comunque, come suggeriva Mexico77, metti un punto di interruzione e valuta in debug la stringa (e le sue componenti) e poi testala nel db.

Alessio
11 messaggi dal 27 gennaio 2021
Ciao Alessio,
purtroppo sto facendo questa applicazione come hobby e interesse personale e negli ultimi 20 anni non ho piu messo mani a software...non sono cosi capace

ho messo il punto di interruzione sulla riga della query e fino li funziona, poi se procedo mi da errore.

CLIE_ID è popolato assieme anche ad altre colonne

se faccio una query nel DB togliendo la parte dal primo CLIE_ID in poi funziona, ma se inserisco tutto mi da errore.

riporto anche il codice asp se torna utile
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ClieDettagli.aspx.cs" Inherits="IntraWEB.ClieDettagli" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<style type="text/css">
#form1 {
width: 1959px;
}
.auto-style1 {
width: 100%;
float: left;
border-style: solid;
border-width: 2px;
}
.auto-style2 {
width: 612px;
}
.auto-style3 {
width: 405px;
}
</style>
</head>

<body>
<form id="form1" runat="server">
<div style="margin-left: 40px">
<asp:LinkButton ID="ButtonCLIE2" OnClick="ButtonCLIE_Click2" runat="server">Torna alla pagina Clienti</asp:LinkButton>
<br />
<br />
<table class="auto-style1">
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox1" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">
<asp:TextBox ID="TextBox2" runat="server" Width="529px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox3" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox4" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox5" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox6" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox7" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox8" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox9" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox10" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox11" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style3">&nbsp;</td>
<td class="auto-style2">



<asp:TextBox ID="TextBox12" runat="server" Width="530px"></asp:TextBox>
</td>
</tr>
</table>
<br />
<br />
<br />
</div>



</form>
</body>

</html>
11 messaggi dal 27 gennaio 2021
e questo è il codice della pagina clienti.aspx

<%@ Page Title="Clienti" Language="C#" MasterPageFile="~/Master/Page.Master" AutoEventWireup="true" ClientIDMode="Static" CodeBehind="clienti.aspx.cs" Inherits="DemoBootstrap.clienti" %>

<asp:Content ID="ContentHead" ContentPlaceHolderID="PlaceHolderHead" runat="server">
</asp:Content>

<asp:Content ID="ContentBody" ContentPlaceHolderID="PlaceHolderBody" runat="server">

<div class="container">

<h4>Clienti</h4>

<div>
<asp:TextBox ID="CercaText2" runat="server"></asp:TextBox>
<asp:Button ID="CercaButton2" runat="server" Text="CERCA" OnClick="CercaButton2_Click" />

<asp:LinkButton ID="ButtonCLIE" OnClick="ButtonCLIE_Click" runat="server">Gestione Clienti</asp:LinkButton>

</div>






<asp:GridView ID="GridCLIE2" runat="server" AutoGenerateColumns="False" DataKeyNames="CLIE_ID" ShowHeaderWhenEmpty="true"



CellPadding="4" ForeColor="#333333" GridLines="None" OnSelectedIndexChanged="GridCLIE2_SelectedIndexChanged1">
<%-- Theme Properties --%>
<AlternatingRowStyle BackColor="White" />
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />

<Columns>


<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_ID") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_ID" Text='<%# Eval("CLIE_ID") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_IDFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Ragione sociale">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_Denominazione") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_Denominazione" Text='<%# Eval("CLIE_Denominazione") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_DenominazioneFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Città">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_Citta") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_Citta" Text='<%# Eval("CLIE_Citta") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_CittaFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Telefono">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_Telefono") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_Telefono" Text='<%# Eval("CLIE_Telefono") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_TelefonoFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Email">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_Email") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_Email" Text='<%# Eval("CLIE_Email") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_EmailFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Sito internet">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_Web") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_Web" Text='<%# Eval("CLIE_Web") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_WebFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Note">
<ItemTemplate>
<asp:Label Text='<%# Eval("CLIE_Note") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCLIE_Note" Text='<%# Eval("CLIE_Note") %>' runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtCLIE_NoteFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Dettagli">
<ItemTemplate>
<asp:linkButton ID="LnkCliDettagli" OnClick="LnkCliDettagli_Click" runat="server" Font-Bold="true" CommandArgument='<%# Eval("CLIE_ID") %>' >Dettagli</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Riferimenti">
<ItemTemplate>
<asp:LinkButton ID="LnkCliRiferimenti" OnClick="LnkCliRiferimenti_Click" runat="server" Font-Bold="true" CommandArgument='<%# Eval("CLIE_ID") %>' >Riferimenti</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>

</div>

</asp:Content>

<asp:Content ID="ContentFooter" ContentPlaceHolderID="PlaceHolderFooter" runat="server">
</asp:Content>




aggiungo la parte cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;





namespace DemoBootstrap
{


public partial class clienti : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateGridview();
}
}





void PopulateGridview()
{
DataTable dtbl2 = new DataTable();
string mainconn = ConfigurationManager.ConnectionStrings["LocalDB"].ConnectionString;
SqlConnection sqlConnection = new SqlConnection(mainconn);
sqlConnection.Open();
{

SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM CLIENTE", mainconn);
sqlDa.Fill(dtbl2);
}
if (dtbl2.Rows.Count > 0)
{
GridCLIE2.DataSource = dtbl2;
GridCLIE2.DataBind();

}
else
{
dtbl2.Rows.Add(dtbl2.NewRow());
GridCLIE2.DataSource = dtbl2;
GridCLIE2.DataBind();
GridCLIE2.Rows[0].Cells.Clear();
GridCLIE2.Rows[0].Cells.Add(new TableCell());
GridCLIE2.Rows[0].Cells[0].ColumnSpan = dtbl2.Columns.Count;
GridCLIE2.Rows[0].Cells[0].Text = "Dati non trovati";
GridCLIE2.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
}
}





protected void CercaButton2_Click(object sender, EventArgs e)
{
SqlDataReader rdr = null;

string mainconn = ConfigurationManager.ConnectionStrings["LocalDB"].ConnectionString;
SqlConnection sqlConnection = new SqlConnection(mainconn);
sqlConnection.Open();
SqlCommand sqlCommand = new SqlCommand();
string sqlquery = "select * from [INTRAWEB].[dbo].[CLIENTE] where CLIE_Denominazione like '%'+ @CLIE_Denominazione+ '%'";
sqlCommand.CommandText = sqlquery;
sqlCommand.Connection = sqlConnection;
sqlCommand.Parameters.AddWithValue("CLIE_Denominazione", CercaText2.Text);



sqlCommand.Parameters.Add("@ReturnValue", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
rdr = sqlCommand.ExecuteReader();
if (rdr.HasRows)
{


while (rdr.Read())
{

}




}
}
protected void ButtonCLIE_Click(object sender, EventArgs e)
{
HttpContext.Current.Response.Redirect("~/WebFormCLIE.aspx", false);
}

protected void LnkCliDettagli_Click(object sender, EventArgs e)
{
HttpContext.Current.Response.Redirect("~/ClieDettagli.aspx", false);
}

protected void LnkCliRiferimenti_Click(object sender, EventArgs e)
{
HttpContext.Current.Response.Redirect("~/WebFormCLIE.aspx", false);
}

protected void GridCLIE2_SelectedIndexChanged1(object sender, EventArgs e)
{
string CLIE_ID = GridCLIE2.SelectedRow.Cells[0].Text;
Response.Redirect("~/ClieDettagli.aspx?CLIE_ID=" + CLIE_ID);
}
}
}

Grazie ancora a tutti

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.