Microsoft Management Studio 2008 : Eviter d’avoir à recréer une table après modification de sa structure

2010-06-03 1 Min. lecture Base De Données SQL Server

L’utilisation de Microsoft Management Studio 2008 est très utile pour la gestion d’une base de données SQL Server 2008.

Avec les réglages par défaut, certaines modifications (qui demandent une recréation de la table) sont impossibles. Microsoft Management Studio 2008 propose d’annuler l’enregistrement de la modification ou de sauvegarder le nom la table dans un fichier texte.

MMS2008 Comme il est dit dans le texte d’information, il faut activer l’option “Prevent saving changes that require the table to be re-created”, littéralement “Empêcher l’enregistrement des modifications qui demande une recréation de la table” pour pouvoir supprimer cette sécurité.

continuer la lecture

Modifier un contrôle depuis un autre thread en WPF

2010-05-09 2 Min. lecture .NET C# WPF

Dans une application WPF, l’utilisation de plusieurs **threads **pour la modification de contrôles est plus compliquée qu’il n’y parait. Un contrôle ne peut être modifier que par le thread à qui il appartient.

Par exemple :

  • MainWindow.xaml
<Window x:Class="Threads.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
  <Grid>
    <Label Content="Label" Height="28" HorizontalAlignment="Left" Name="label1" />
  </Grid>
</Window>
  • MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Threading;

namespace Threads
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // Create Thread
            Thread myThread = new Thread(ModifyLabel);
    
            // Start Thread
            myThread.Start();
    
            // Wait for 3sec
            Thread.Sleep(3000);
    
            // Stop Thread
            myThread.Abort();
        }
    
        public void ModifyLabel()
        {
            label1.Content = "my content";
        }
    }
}

Lorsqu’on lance ce programme l’erreur suivante apparait :

continuer la lecture

UpdatePanel en ASP.NET, attention au piège

2010-05-06 2 Min. lecture .NET ASP.NET C#

En ASP.NET, l’UpdatePanel permet d’intéragir avec le serveur sans avoir à recharcher la page (mode asynchrone).

Le code suivant affiche la date courante dans le label lors du click sur le bouton sans avoir à recharger la page :

UpdatePanel.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:scriptmanager id="ScriptManager1" runat="server">
</asp:scriptmanager>
        <asp:updatepanel id="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="bt1" runat="server" Text="Button"
onclick="bt1_Click" />
<asp:Label ID="lbl1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:updatepanel>
    </div>
    </form>
</body>
</html>

UpdatePanel.aspx.cs

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

public partial class UpdatePanel : System.Web.UI.Page
{
    protected void bt1_Click(object sender, EventArgs e)
    {
        lbl1.Text = DateTime.Now.ToString();
    }
}

Ce qui donne le résultat suivant lors du click sur le bouton, le tout sans rechargement de page :

continuer la lecture

Réduire le temps de chargement d’une page ASP.NET avec le SQL Server Cache Dependency

2010-04-11 4 Min. lecture .NET ASP.NET C#

Un système de cache permet de mettre temporairement des données en mémoire sur le serveur permettant un affichage plus rapide des pages du site web.

En ASP.NET, il existe plusieurs solutions pour créer un système de cache :

  • Output Caching : Une copie de la page web finale (HTML) est stockée sur le serveur. Lors du prochain appel à la page, la copie stockée sera automatiquement rendue au client n’exécutant ainsi pas les requêtes SQL, traitements côté serveur, etc… La copie expirera automatiquement après un temps préalablement configurée ou si le serveur manque de mémoire.
  • Data Caching : Il est possible de stocker en mémoire sur le serveur des données comme un DataSet. Si le DataSet est mis en cache, on évite ainsi un appel à la base de données. Contrairement à l’Output Caching, c’est à vous de définir les objets qui seront mis en cache.

Dans cet article, c’est une partie du Data Caching qui nous intéresse : le SQL Server Cache Dependency. Le principe de cette méthode de caching est de limiter les appels à la base de données en mettant en cache le résultat d’une requête SQL et en l’utilisant tant que la table à qui elle fait appel n’est pas modifiée.

continuer la lecture

Faire des backups de base de données sous SQL Server 2008

2010-04-10 2 Min. lecture SQL Server

Avant de faire des modifications sur une base de données, il est fortement recommandé de faire une sauvegarde de la base de données. Pour faire cette opération avec une base de données SQL serveur 2008, utilisez Microsoft SQL Server 2008 Management Studio Express (à télécharger ici).

Une fois installé, lancez le logiciel et connectez vous sur votre base de données SQL Serveur 2008

connexion

Dans la partie de gauche, déplier le nœud _**Databases **_et faite un clic droit sur la base de données que vous souhaitez sauvegarder, séléctionnez Tasks puis Back Up

continuer la lecture

Installer un serveur IIS 7.5 sous Windows Server 2008 R2

2010-03-19 5 Min. lecture Windows Server 2008

il est bien de savoir développer en .NET, mais quelques notions d’administration de serveur web peuvent servir. Voici donc le premier article d’une série qui traitera de l’installation d’un serveur IIS, installation de SQL Server, etc… Les informations que vous trouverez dans ces articles ont surement déjà été publiées ailleurs sur le web ou sur les documentations officielles de Microsoft, mais mon but est ici d’apprendre.

Cette série d’articles se base sur un Windows Server 2008 R2 Datacenter, il se peut donc que certaines petites choses diffèrent si vous utilisez une version Web, Standard ou Enterprise.

continuer la lecture

Récupérer l’UserId de l’utilisateur connecté en C# avec ASP.NET

2010-03-13 1 Min. lecture .NET ASP.NET C#

Avec l’utilisation du système intégré à ASP.NET pour gérer les utilisateurs, il peut être utile de récupérer l’identifiant de l’utilisateur actuellement connecté par exemple pour récupérer des données dans une base qui se rapporte à cet utilisateur.

Voici le code qui permet de récupérer l’UserId :

string userID = Membership.GetUser().ProviderUserKey.ToString();

Envoyer un email grâce à un template en ASP.NET et C#

2010-02-12 1 Min. lecture .NET ASP.NET C#

Dans un article précédent, j’expliquais comment envoyer un email en C#, un autre aspect intéressant de l’envoi de mail est de pouvoir utiliser un fichier texte comme template. Cette fonctionnalité est utilisée notamment par le contrôle _**CreateUserWizard avec le _MailDefinition : **

<MailDefinition BodyFileName="~/Skels/template.txt" Subject="Sujet du mail">
</MailDefinition>

Le code ci-dessus permet donc d’utiliser le contenu du fichier _template.txt _comme corps de notre email.

Pour reproduire ce comportenant en C#, il faut utiliser la classe **MailDefinition **comme exposé dans l’exemple suivant.

continuer la lecture

ObjectDataSource et Guid, propriété non trouvée en ASP.NET

2010-02-12 2 Min. lecture .NET ASP.NET C#

Lorsque l’on veut utiliser un GridView pour ajouter/modifier/supprimer des données dans une table SQL qui a pour clé primaire un **Guid **(par exemple aspnet_Users), une erreur survient lorsque l’on veut modifier ou supprimer un élément :

Could not find a property named 'xxx' on the type specified by the DataObjectTypeName property in ObjectDataSource 'yyy'

Tout semble pourtant bien configurer, mais l’erreur persiste. J’ai été confronté à ce problème avec la table aspnet_Users, qui contient les utilisateurs créés avec le système interne d’ASP.NET.

continuer la lecture

Corriger l’erreur de getimagesize() de PHP causée par un .htaccess

2010-02-04 1 Min. lecture Développement Web PHP

L’utilisation de la fonction getimagesize() en php est très pratique pour récupérer les dimensions d’une image passée en paramètre.

Si votre site est protégé par un .htaccess qui restreint l’accès à certaines personnes, vous devez avoir une erreur du type :

Warning: getimagesize(http://www.domain.com/images/fleur.png): failed to open stream: HTTP request failed! HTTP/1.1 401 Authorization Required in /home/domain.com/httpdocs/page.php on line 36

Comme l’erreur l’indique, il y a un problème d’autorisation pour accéder à l’image. Pour corriger cette erreur, il suffit de spécifier le **nom d’utilisateur **et le mot de passe nécessaires pour le .htaccess.

continuer la lecture
Articles plus anciens messages plus récents