Newsgroup: it.lavoro.professioni.webmaster
Titolo: Amministrare MSSQL via Web

Ciao a tutti.
Tempo fa avevo già fatto una richiesta del genere.
Ho la necessità di amministrare più db che risiedono su MSSQL via web.
In realtà più che amministrare i db avrei la necessità di poter lavorare sui
dati delle singole tabelle senza dover scrivere ogni volta delle queries.
Ho cercato a lungo e la migliore soluzionemi sembra
http://www.mylittletools.net/livedemo/mla_sql/
che ha, tralaltro, un'interfaccia identica ad enterprise manager e permette
di modificare al volo ogni singolo record di ogni tabella, e in più ha un
buon tool di import/export in csv
però, prima di acquistare una licenza volevo sapere se mi sapete indicare
delle alternative.
Ho visto la soluzione gratuita di MS: SQL Server Web Data Administrator, ma
non permette di lavorare i dati nelle tabelle...
thanks.
anto
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 non permette di lavorare i dati nelle tabelle...
scherzi?? ma se hai tutto il source code puoi farci quello che vuoi
Devi semplicemente modificare il file tables.aspx aggiungere una colonna al 
datagrid dopo (edit, rename, delete) aggiungi show.
Crei i file showtable.aspx e showtable.aspx.cs per il layout di 
showtable.aspx puoi basarti su storedprocedure.aspx mentre per il codice ti 
allego il codice di showtable.aspx.cs
----start code----
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using SqlAdmin;
namespace SqlWebAdmin
{
    /// <summary>
    /// Summary description for query.
    /// </summary>
    public class showtable : 
System.Web.UI.Page
    {
        protected Panel ResultsPanel;
  protected System.Web.UI.WebControls.Label tblName;
        protected Label ErrorLabel;
        public showtable()
        {
            Page.Init += new System.EventHandler(Page_Init);
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            HttpCookie cookie = Request.Cookies["WebDataAdministrator"];
            if (cookie == null)
                Response.Redirect("default.aspx?error=sessionexpired");
            SqlServer server = new SqlServer(cookie.Values["server"], 
cookie.Values["username"], cookie.Values["password"]);
            ResultsPanel.Visible = false;
            ErrorLabel.Visible = false;
   tblName.Text=Request["table"];
   DataTable[] tables = null;
   server.Connect();
   SqlDatabase database = server.Databases[Request["database"]];
   if (database == null)
   {
    server.Disconnect();
    // Database doesn't exist - break out and go to error page
    Response.Redirect(String.Format("error.aspx?error={0}", 1000));
    return;
   }
   try
   {
    tables = database.Query("SELECT TOP 100 * FROM [" + Request["user"] + 
"].[" + Request["table"] + "]");
   }
   catch (SqlException ex)
   {
    // Print error message
    ResultsPanel.Visible = false;
    ErrorLabel.Visible = true;
    ErrorLabel.Text =
     "The following error occured while executing the query:<br>\n" +
     String.Format("Server: Msg {0}, Level {1}, State {2}, Line {3}<br>\n", 
new object[] {ex.Number, ex.Class, ex.State, ex.LineNumber}) +
     Server.HtmlEncode(ex.Message).Replace("\n", "<br>") + "<br>\n";
   }
   server.Disconnect();
   // Print output tables, if they exist
   if (tables != null)
   {
    // Add header text "Results:"
    Label label = new Label();
    label.Text = "";
    ResultsPanel.Controls.Add(label);
    // Loop through all the tables in the DataSet
    for (int i = 0; i < tables.Length; i++)
    {
     // Only print divider after first table
     if (i > 0)
     {
      // Create new label for grid divider
      label = new Label();
      label.Text = "<br><br><hr><br><br>";
      ResultsPanel.Controls.Add(label);
     }
     DataGrid dataGrid = new DataGrid();
     dataGrid.HeaderStyle.CssClass = "tableHeader";
     dataGrid.ItemStyle.CssClass = "tableItems";
     dataGrid.ItemStyle.Wrap = false;
     dataGrid.Width=Unit.Percentage(100);
     dataGrid.EnableViewState = false;
     dataGrid.PreRender += new EventHandler(DataGrid_PreRender);
     dataGrid.DataSource = tables[i];
     dataGrid.DataBind();
     ResultsPanel.Controls.Add(dataGrid);
    }
    ResultsPanel.Visible = true;
    ErrorLabel.Visible = false;
   }
  }
        private void Page_Init(object sender, EventArgs e)
        {
            //
            // CODEGEN: This call is required by the 
ASP.NET
 Web Form 
Designer.
            //
            InitializeComponent();
        }
        #region Web Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
   this.Load += new System.EventHandler(this.Page_Load);
  }
        #endregion
        private void DataGrid_PreRender(object sender, EventArgs e) {
            // Set the wrapping style of all the cells based on the 
checkbox, and HTML encode all the cell contents
            DataGrid d = (DataGrid)sender;
            foreach (DataGridItem item in d.Items) {
                foreach (TableCell t in item.Cells) {
                    t.Wrap = true;
     if (t.Text != null)
                    t.Text = Server.HtmlEncode(t.Text);
                }
            }
        }
    }
}
----end code----
Buon lavoro questo piccolo esempio mosta i primi 100 record della tabella 
selezionata in una datagrid ovviamente puoi rendere dinamica la datagrid con 
sp di aggiornamento, inserimento e cancellazione per il resto usa la 
fantasia e il codice :-P
-- 
ITHost (your host company)
Technical Manager
C. Paparelli (MCSE,MCSD,MCDBA)
http://www.ithost.ch

 fantasia e il codice :-P
una sola cosa mi viene in mente...
credo di aver procrastinato troppo lo studio di 
asp.net
grazie molte.
anto