Posts
460
Comments
583
Trackbacks
0
Wednesday, August 06, 2014
Per klassischen JavaScript und AJAX das Wetter abfragen

Hier ein Beispiel wie man mit klassischen JavaScript (ohne jQuery) das Wetter abfragen kann:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<script type="text/javascript">
function GetWeather(city, onload, onerror) {

    var xhr, results, url;
    
    url = 'http://openweathermap.org/data/2.5/find?q=' + city + '&units=metric&lang=de ';
    
    xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.onload = function (e) {    
        if (this.status === 200) {    
            results = JSON.parse(this.responseText);        
            onload(results);    
        }    
    };
    xhr.onerror = function (e) {
        onerror(e);
    };    
    xhr.send();
}
 
function handleError(error) {
    alert('error' +error);
}

function onload (data) {
    var container = document.getElementById('container');
    
    image = "<img src='http://openweathermap.org/img/w/" + data.list[0].weather[0].icon + ".png'><br/>";

    text = '<table border=0>';
    text += '<tr><td><b>Ort: </b></td><td>' + data.list[0].name + '</td><td rowspan=3>' + image + '</tr>';
    text += '<tr><td><b>Temperature: </b></td><td>' + data.list[0].main.temp + ' C</td></tr>';
    text += '<tr><td><b>Wetter: </b></td><td>' + data.list[0].weather[0].description + '</td></tr>';
    text += '</table>';
    
    container.innerHTML=text;    
};
                  
 GetWeather('Heidelberg', onload,handleError);

</script>
</head>

<body>
<div id="container">
</div>
</body>

</html>
posted @ Wednesday, August 06, 2014 1:03 PM | Feedback (5)
Friday, August 01, 2014
Praktische Webseiten

Für mein Archiv die Auflistung “Diese zehn Webseiten machen den Alltag leichter“ von Stern:

http://www.stern.de/digital/online/billiger-shoppen-und-weniger-spam-diese-zehn-webseiten-machen-den-alltag-leichter-2129588.html

posted @ Friday, August 01, 2014 4:17 PM | Feedback (10)
Tuesday, July 01, 2014
Fehlermeldung: Der 'Microsoft.ACE.OLEDB.12.0'-Provider ist nicht auf dem lokalen Computer registriert.

Ich erhielt diese Fehlermeldung – “Der 'Microsoft.ACE.OLEDB.12.0'-Provider ist nicht auf dem lokalen Computer registriert.” - in LINQPad nachdem ich versucht hatte mit LinqToExcel auf eine Exceldatei zuzugreifen.
Auf meinem Windows8 Rechner habe ich jedoch Office 2013 (inkl. Access) installiert.

Letztlich half es die "Microsoft Access Database Engine 2010 Redistributable " von Microsoft zu installieren:
http://www.microsoft.com/de-de/download/details.aspx?id=13255

posted @ Tuesday, July 01, 2014 10:59 AM | Feedback (5)
Friday, June 06, 2014
Einstieg in Angular.js

Einen sehr guten Einstieg in Angular.js gibt es auf Youtube:

Teil 1: https://www.youtube.com/watch?v=TRrL5j3MIvo
Teil 2: https://www.youtube.com/watch?v=6J08m1H2BME

Die Beispiele dazu findet man hier:
https://github.com/curran/screencasts/tree/gh-pages/introToAngular

 

Die beste Serie jedoch ist zu finden unter:

https://www.youtube.com/watch?v=xELm8roh6VI&list=PLzJZ3ahfm9Q8pwP88ZRSdjwlwn6lrHzrT&index=1

posted @ Friday, June 06, 2014 7:51 AM | Feedback (5)
Wednesday, June 04, 2014
AngularJS die 1.

Hier ein ganz einfaches Beispiel für AngularJS:

Der eingegebene Vor- und Nachname wird sofort ausgegeben:

<!DOCTYPE html>
<html>
<head lang="en">
    <title></title>
</head>
<body ng-app="">
    <h1>
        Hallo {{firstName + " " + lastName}}
    </h1>

    <div>
        <div>
            Vorname:
            <input type="text" ng-model="firstName" />
        </div>
    </div>

    <div>
        <div>
            Nachname:
            <input type="text" ng-model="lastName" />
        </div>
    </div>

    <script src="lib/angular.js"></script>

</body>
</html>

Geht viel einfacher wie mit Knockout.js Smiley

posted @ Wednesday, June 04, 2014 2:47 PM | Feedback (8)
Wednesday, May 21, 2014
Yield

Für mein Archiv ein Beispiel mit yield:

public IEnumerable<string> TextFilter(IEnumerable<string> texte)
{
   foreach (string text in texte)
   {
      if (text.StartsWith("Wichtig:"))  // gebe nur Texte zurück,
         yield return text;             // die mit "Wichtig:" anfangen
if (text == "Seitenende") // Beende die Auflistung, yield break; // wenn Text "Seitenende" gefunden } }


Oder ein Beispiel wie man mit yield eine IEnumerable<T> Interface realisieren kann:

 public class Pair<T> : IEnumerable<T> where T : IComparable<T>
    {
        public Pair(T item1, T item2)
        {
            if (item1.CompareTo(item2) < 0)
            {
                item1 = item1;
                item2 = item2;
            }
            else
            {
                item1 = item2;
                item2 = item1;
            }
        }
        
        public T item1 { get; set; }
        public T item2 { get; set; }

        public IEnumerator<T> GetEnumerator()
        {
            yield return item1;
            yield return item2;
        }

        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return this.GetEnumerator();
        }
    }
posted @ Wednesday, May 21, 2014 2:10 PM | Feedback (5)
Friday, May 02, 2014
Zahlen formatieren

Fürs Archiv, damit ich es nicht immer wieder raussuchen muss:

Formatmöglichkeiten:

            decimal value = 1234567.98800M;
            Console.WriteLine(value);
            Console.WriteLine(value.ToString("#.##"));
            Console.WriteLine(String.Format("{0:0.00}", value));
            Console.WriteLine(value.ToString("n2"));

Ergebnis:

ergebnis

posted @ Friday, May 02, 2014 3:39 PM | Feedback (8)
Tuesday, April 22, 2014
Tool zum optimieren von PNGs

Unter der folgenden Adresse gibt es ein Tool welchen JPG Grafiken in PNGs umwandelt und PNGs ohne Qualitätsverlust optimiert:
http://pnggauntlet.com/

Ein anderes interessantes Tool zur Bilderoptimierung ist RIOT (Radical Image Optimization Tool):
http://luci.criosweb.ro/riot/

posted @ Tuesday, April 22, 2014 9:57 AM | Feedback (5)
Tuesday, April 15, 2014
Kostenlose Emulatoren für iPhone und iPad in Visual Studio installieren

Responsitives Design wird immer gefragter und da wäre es gut, wenn man Emulatoren für iPhone und iPad in Visual Studio hätte.

Es gibt diese Simulatoren käuflich zu erwerben: http://www.electricplum.com/studio.aspx

Über das Programm kostenlose WebMatrix von Microsoft kann man sich diese Emulatoren jedoch auch kostenlos installieren:

Nachdem WebMatrix installiert wurde wählt startet man das Programm und wählt eine Webseite über "Meine Websites" aus:

1

Anschließend Erweiterungen auswählen:

2

Hier IPhone und IPad Simulator auswählen und installieren

3

Webmatrix installiert die beiden Emulatoren in die Verzeichnisse:
C:\Users\Username\AppData\Local\Microsoft\WebMatrix\Extensions\30\

Hier findet man die EXE-Dateien:

4

Diese Emulatoren können nun unter Visual Studio eingebunden werden:

5

6

und stehen anschließend zur Verfügung:

7

 

Die Emulatoren lassen sich auch direkt ohne VisualStudio aufrufen um Seiten mit responsitivem Design zu testen:

8

9

posted @ Tuesday, April 15, 2014 2:24 PM | Feedback (5)
Thursday, March 20, 2014
Die Datenbankverbindungen der Web.Config testen

Wir eine Web-Anwendung in ein neues Rechenzentrum umgezogen kann es hilfreich sein testen zu können ob alle in der Web.Config angegebenen Datenbankverbindungen auch funktionieren.

Hierbei kann die folgende ASPX-Seite von Vorteil sein:

<%@ Page Language="C#" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
     <script language="CS" runat="server">
         void Page_Load(object sender, System.EventArgs e)
         {
            // get Windows User 
            string userName ="";
            userName = Request.LogonUserIdentity.Name;
            userName = userName.Substring(userName.LastIndexOf("\\") + 1);
            this.Windows.Text = userName;

            // check 'Connection'
            this.MainConnection.Text = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Connection"].ToString();
            using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(this.MainConnection.Text))
            {
                try
                {
                    con.Open();
                    this.MainConnectionStatus.Text = "<font color='green'>OK</font>";
                }
                catch (Exception ex)
                {
                    this.MainConnectionStatus.Text = "<font color='red'>ERROR<br>";
                    this.MainConnectionStatus.Text += ex.Message +"</font>";
                }
            }

            // check 'Connection2'
            this.Tea.Text = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Connection2"].ToString();
            using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(this.Tea.Text))
            {
                try
                {
                    con.Open();
                    this.TeaStatus.Text = "<font color='green'>OK</font>";
                }
                catch (Exception ex)
                {
                    this.TeaStatus.Text = "<font color='red'>ERROR<br>";
                    this.TeaStatus.Text += ex.Message + "</font>";
                }
            }

            // check 'Connection3'
            this.Membership.Text = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["3"].ToString();
            using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(this.Membership.Text))
            {
                try
                {
                    con.Open();
                    this.MembershipStatus.Text = "<font color='green'>OK</font>";
                }
                catch (Exception ex)
                {
                    this.MembershipStatus.Text = "<font color='red'>ERROR<br>";
                    this.MembershipStatus.Text += ex.Message + "</font>";
                }
            }
         } 
     
     </script>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <br />
        <h1>UserID - Siteminder</h1>
        <br />
        Siteminder: <asp:Label ID="Siteminder" runat="server" Text=""></asp:Label><br />
        Windows-UserID: <asp:Label ID="Windows" runat="server" Text=""></asp:Label><br />
        <br /><br />
    <h1>Test ConnectionString: MainConnection</h1>
        <br />
    ConnectionString: <asp:Label ID="Connection" runat="server" Text="Label"></asp:Label><br />
    Status:   <asp:Label ID="ConnectionStatus" runat="server" Text="Label"></asp:Label><br />

    <br /><br />
        <h1>Test ConnectionString: ConnectionTea-VAN-Dev</h1>
        <br />
    ConnectionString: <asp:Label ID="Connection1" runat="server" Text="Label"></asp:Label><br />
    Status:   <asp:Label ID="Connection1Status" runat="server" Text="Label"></asp:Label><br />

    <br /><br />

            <h1>Test ConnectionString: ConnectionMembership</h1>
        <br />
    ConnectionString: <asp:Label ID="Connection2" runat="server" Text="Label"></asp:Label><br />
    Status:   <asp:Label ID="Connection2Status" runat="server" Text="Label"></asp:Label><br />

    <br /><br />
            
    </div>
    </form>
</body>
</html>
posted @ Thursday, March 20, 2014 2:14 PM | Feedback (4)
Wednesday, March 05, 2014
WebForms: ViewState verschlüsseln

Hier ein Beispiel wie man den ViewState einer WebForm-Anwendung verschlüsseln kann:

   <machineKey
      validationKey="67D5A7F728D7FCD86AAA2FF7CFE30A38A8A1A5621D4BE78F853B1A9E4C44DB14150ECE959EC5E1720A18FC0DCD56839DCCA350701EAD29F0E7832DFF6AD28618"
      decryptionKey="3BDD6F3D5CBB3D63397A46106933CCD9A72D466FE671209DC2ABF45A61CDD79E"
      validation="SHA1"
      decryption="AES" />
    <pages enableViewState="true" enableViewStateMac="true" viewStateEncryptionMode="Always" >    

Der MachineKey wird zum Verschlüsseln des ViewStates benötigt. Einen MachineKey kann man sich hier erstellen lassen: http://aspnetresources.com/tools/machineKey

Siehe auch Microsoft patterns & practics: http://msdn.microsoft.com/en-us/library/ff649308.aspx

posted @ Wednesday, March 05, 2014 1:52 PM | Feedback (6)
Friday, February 21, 2014
Beispiel für einen HTTP-Handler welcher eie Datei aus der Datenbank lädt

Hier ein Beispiel für einen HTTP-Handler welcher eine Datei aus der Datenbank lädt und zum Download anbietet:

<%@ WebHandler Language="C#" Class="ReportDownload" %>
using System;
using System.IO;
using System.Web;
using System.Data.SqlClient;

public class ReportDownload : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.Params["reportId"] != null)
        {
            string id = context.Request.Params["reportId"];
            string sqlSelect = "select FILE_TYPE,FILE_NAME,FILE_CONTENT from [REPORTS] where CTRLSY_IDENTIFIER='" + id + "'";

            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Connection"].ToString();
            using (SqlConnection objConn = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(sqlSelect, objConn);
                cmd.Parameters.AddWithValue("@id", id);
                objConn.Open();

                SqlDataReader sqldr = cmd.ExecuteReader();
                sqldr.Read();

                if (sqldr.HasRows)
                {
                    context.Response.ContentType = sqldr["FILE_TYPE"].ToString();
                    context.Response.AppendHeader("content-Disposition", "attachment;filename=" + sqldr["FILE_NAME"].ToString() + "");
                    context.Response.BinaryWrite((byte[])sqldr["FILE_CONTENT"]);
                }
            }
        }
    }    

    public bool IsReusable
    {
        get { return true; }
    }
}
posted @ Friday, February 21, 2014 1:46 PM | Feedback (4)
Thursday, February 13, 2014
Beispiel wie man eine Datei in einer Datenbank speichert

Hier ein kleines Beispiel wie man vom Web-Frontend aus eine Datei hochladen und in einer Datenbank speichern kann.

 protected void UploadButton_Click(object sender, EventArgs e)
        {
            if (fileUploadDocument.HasFile || !string.IsNullOrEmpty(this.hdnID["ID"].ToString()))
            {
                try
                {
                    // Get the File name and Extension
                    string fileName = Path.GetFileName(fileUploadDocument.PostedFile.FileName);
                    string fileExtension = Path.GetExtension(fileUploadDocument.PostedFile.FileName).Replace(".", string.Empty);
                    string description = this.txtDescription.Text;
                    if (description.Length > 500)
                    {
                        description.Substring(0, 500);
                    }

                    string timeArea = this.txtTimeArea.Text;
                    if (timeArea.Length > 200)
                    {
                        timeArea.Substring(0, 200);
                    }
                    string id = this.hdnID["ID"].ToString();

                    // Extract the content of the Document into a Byte array
                    int intlength = fileUploadDocument.PostedFile.ContentLength;
                    byte[] byteData = new byte[intlength];
                    fileUploadDocument.PostedFile.InputStream.Read(byteData, 0, intlength);

                    // Save the file to the DB - using the sored procedure DSDZ.INSERT_REPORT
                    string connectionString = ConfigurationManager.ConnectionStrings["Connection"].ToString();
                    using (SqlConnection objConn = new SqlConnection(connectionString))
                    {
                        SqlCommand objCmd;
                        if (!string.IsNullOrEmpty(this.hdnID["ID"].ToString()))
                        {
                            objCmd = new SqlCommand("REPORT_UPDATE", objConn);
                        }
                        else
                        {
                            objCmd = new SqlCommand("REPORT_INSERT", objConn);
                        }

                        objCmd.CommandType = CommandType.StoredProcedure;

                        SqlParameter pFileName = new SqlParameter("FileName", SqlDbType.VarChar);
                        pFileName.Size = 50;
                        pFileName.Direction = ParameterDirection.Input;
                        pFileName.Value = fileName;

                        SqlParameter pExtension = new SqlParameter("Extension", SqlDbType.VarChar);
                        pExtension.Size = 5;
                        pExtension.Direction = ParameterDirection.Input;
                        pExtension.Value = fileExtension;

                        SqlParameter pFileContent = new SqlParameter("FileContent", SqlDbType.VarBinary);
                        pFileContent.Size = byteData.Length;
                        pFileContent.Direction = ParameterDirection.Input;
                        pFileContent.Value = byteData;

                        SqlParameter pDescription = new SqlParameter("DESCRIPTION", SqlDbType.NVarChar);
                        pDescription.Size = 250;
                        pDescription.Direction = ParameterDirection.Input;
                        pDescription.Value = description;

                        SqlParameter pTimeArea = new SqlParameter("TimeArea", SqlDbType.NVarChar);
                        pTimeArea.Size = 200;
                        pTimeArea.Direction = ParameterDirection.Input;
                        pTimeArea.Value = timeArea;

                        objCmd.Parameters.Add(pFileName);
                        objCmd.Parameters.Add(pExtension);
                        objCmd.Parameters.Add(pFileContent);
                        objCmd.Parameters.Add(pDescription);
                        objCmd.Parameters.Add(pBr);
                        objCmd.Parameters.Add(pTimeArea);
                        objCmd.Parameters.Add(pModuleGroup);

                        if (!string.IsNullOrEmpty(this.hdnID["ID"].ToString()))
                        {
                            SqlParameter pID = new SqlParameter("ID", SqlDbType.VarChar);
                            pID.Size = 40;
                            pID.Direction = ParameterDirection.Input;
                            pID.Value = id;

                            objCmd.Parameters.Add(pID);
                        }

                        objConn.Open();
                        objCmd.ExecuteNonQuery();

                        this.Session["ReportAdministration"] = null;
                    }

                    StatusLabel.CssClass = "meldung";
                    StatusLabel.Text = "Der Report wurde hochgeladen.";
                }
                catch (Exception ex)
                {
                    StatusLabel.CssClass = "meldung";
                    StatusLabel.Text = "Upload status: Folgender Fehler ist aufgetreten: " + ex.Message;
                }
            }
            else
            {
                StatusLabel.CssClass = "error";
                StatusLabel.Text = "Sie müssen eine Datei auswählen.";
            }
        }

 

Und die beiden stored procedure:

CREATE PROCEDURE Report_insert] @FileName    NVARCHAR(50), 
                                @Extension   NVARCHAR(5), 
                                @FileContent VARBINARY(max), 
                                @Description NVARCHAR(250), 
                                @TimeArea    NVARCHAR(200)
AS
  BEGIN
      INSERT INTO [reports]
                  (file_name,
                   file_type,
                   file_content,
                   description,
                   br,
                   modulegroup,
                   timearea)
      VALUES      (@FileName,
                   @Extension,
                   @FileContent,
                   @Description, 
                   @TimeArea);
  END 

und für Update:

CREATE PROCEDURE [Report_update] @FileName    NVARCHAR(50), 
                                 @Extension   NVARCHAR(5), 
                                 @FileContent VARBINARY(max), 
                                 @Description NVARCHAR(250), 
                                 @BR          NVARCHAR(10), 
                                 @ModuleGroup NVARCHAR(100), 
                                 @TimeArea    NVARCHAR(200), 
                                 @ID          NVARCHAR(40)
AS
  BEGIN
      IF @FileName = ''
        BEGIN
            -- Update without a report file
            UPDATE [reports]
            SET    description = @Description, 
                   timearea = @TimeArea
            WHERE  ctrlsy_identifier = @ID
        END
      ELSE
        BEGIN
            -- Update with a report file
            UPDATE [reports]
            SET    description = @Description, 
                   timearea = @TimeArea,
                   file_content = @FileContent,
                   file_name = @FileName,
                   file_type = @Extension
            WHERE  ctrlsy_identifier = @ID
        END
  END 

Und noch die Tabelle:

CREATE TABLE [reports]
  (
     [ctrlsy_identifier]  [UNIQUEIDENTIFIER] NOT NULL,
     [ctrlsy_timestamp]   [DATETIME] NULL,
     [ctrlsy_lastchange]  [NVARCHAR](5) NULL,
     [ctrlsy_deleted]     [BIT] NULL,
     [ctrlsy_lastchanger] [NVARCHAR](10) NULL,
     [file_name]          [NVARCHAR](100) NULL,
     [file_type]          [NVARCHAR](10) NULL,
     [file_content]       [VARBINARY](max) NULL,
     [description]        [NVARCHAR](500) NULL, 
     [timearea]           [NVARCHAR](200) NULL,
     CONSTRAINT [PK_DSDZ.REPORTS] PRIMARY KEY CLUSTERED ( [ctrlsy_identifier]
     ASC )WITH (pad_index = OFF, statistics_norecompute = OFF, ignore_dup_key =
     OFF, allow_row_locks = on, allow_page_locks = on) ON [PRIMARY]
  )
ON [PRIMARY]
textimage_on [PRIMARY]

go

SET ansi_padding OFF

go

ALTER TABLE [DSDZ].[reports]
  ADD CONSTRAINT [DF_REPORTS_CTRLSY_IDENTIFIER] DEFAULT (Newid()) FOR
  [CTRLSY_IDENTIFIER]

go

ALTER TABLE [DSDZ].[reports]
  ADD CONSTRAINT [DF_REPORTS_CTRLSY_TIMESTAMP] DEFAULT (Getdate()) FOR
  [CTRLSY_TIMESTAMP]

go

ALTER TABLE [DSDZ].[reports]
  ADD CONSTRAINT [DF_REPORTS_CTRLSY_LASTCHANGE] DEFAULT ('I') FOR
  [CTRLSY_LASTCHANGE]

go

ALTER TABLE [DSDZ].[reports]
  ADD CONSTRAINT [DF_REPORTS_CTRLSY_DELETED] DEFAULT ('false') FOR
  [CTRLSY_DELETED]

go 

posted @ Thursday, February 13, 2014 1:41 PM | Feedback (6)
Thursday, January 23, 2014
machineKey Generator

Hier ein Link zu einem MachineKey Generator: http://aspnetresources.com/tools/machineKey

Z.B.

<machineKey validationKey="08C9D7C88BF46563DA2DD59D5EA4F696B76A22B59AAD2E0837D125B3D98A150D87549488BEBF045D39484B4A7AECABDE4A1B4E94AF1A3293255F9018EA796B02" decryptionKey="F302B3398B06DB7D941900072CD76A419B23DB23AB0C4707E67805AFD2B67AAC" validation="SHA1" decryption="AES" />

posted @ Thursday, January 23, 2014 10:42 AM | Feedback (4)
Friday, January 17, 2014
LINQ to Excel

Bei Google gibt es eine Assembly welche es ermöglicht LINQ-Abfragen an eine Excel-Datei zu stellen:

http://code.google.com/p/linqtoexcel/

Dieses gibt es auch als NuGet Package: “Install-Package LinqToExcel”

 

Zusammen mit  LINQPad (http://www.linqpad.net/) lässt sich schnell ein kleines Import-Programm einer EXCEL-Datei in eine SQL-Datenbank schrieben:

void Main()
{    
    var excel = new LinqToExcel.ExcelQueryFactory(@"Pfad zur Excel-Datei")    
    
    excel.AddMapping<ToAdd>(x => x.MODELGRUPPEN, "Modelgruppe".Trim()); 
    excel.AddMapping<ToAdd>(x => x.FERTIGUNG, "Fertigung".Trim()); 
    excel.AddMapping<ToAdd>(x => x.DESCRIPTION_GE, "Merkmalsbeschreibung deutsch".Trim()); 
    excel.AddMapping<ToAdd>(x => x.DESCRIPTION_EN, "Merkmalsbeschreibung englisch".Trim()); 
    excel.AddMapping<ToAdd>(x => x.REMARKS, "Bemerkung".Trim()); 
    excel.AddMapping<ToAdd>(x => x.ART_EXCEL, "Art".Trim()); 
    excel.AddMapping<ToAdd>(x => x.TYP_EXCEL, "Typ".Trim()); 
                               
    var toAdd = from item in excel.Worksheet<ToAdd>("Merkmale")                
select new ATTRIBUT_CATALOG() { 
                    ID = Guid.NewGuid(), 
                    MODELGRUPPEN = x. MODELGRUPPEN,
                    FERTIGUNG = item.FERTIGUNG, 
                    DESCRIPTION_GE = item.DESCRIPTION_GE,
                    DESCRIPTION_EN = item.DESCRIPTION_EN, 
                    REMARKS = item.REMARKS, 
                    ART_EXCEL = item.ART_EXCEL, 
                    TYP_EXCEL = item.TYP_EXCEL
};
    foreach(var item in toAdd) {
        ATTRIBUT_CATALOGs.InsertOnSubmit(item);
    }        
    SubmitChanges();
}

// Define other methods and classes here
public class ToAdd {
    public Guid CTRLSY_IDENTIFIER { get; set; }
    public string RANGE_LIST { get; set; }
    public string MODELGRUPPEN { get; set;}
    public string FERTIGUNG { get; set; }
    public string DESCRIPTION_GE { get; set; }
    public string DESCRIPTION_EN { get; set; }
    public string BR { get; set;}
    public string REMARKS { get; set; }
    public string ART_EXCEL { get; set; }
    public string TYP_EXCEL { get; set; }
}
posted @ Friday, January 17, 2014 10:46 AM | Feedback (2)
Friday, December 06, 2013
Coole jQuery PlugIns

Damit ich nicht nochmal suchen muss für meine Archiv eine kleine Übersicht:

Für Bilder:

FlexSlider 2 (Foto Slider)
http://flexslider.woothemes.com/

jCarousel
http://sorgalla.com/jcarousel/#Examples

Kwicks
http://devsmash.com/projects/kwicks/2.2.x/examples/slideshow

Responsive Slides
http://responsiveslides.com/

Übersicht Background Gallery
http://www.jquery4u.com/plugins/fullscreen-slideshows/


Responsive:

Menu to a Dropdown for Small Screens
http://css-tricks.com/examples/ConvertMenuToDropdown/

DataTables

Flexigrid
http://flexigrid.info/

Übersicht hier:
http://www.jquery4u.com/tables/30-amazing-jquery-tables/

posted @ Friday, December 06, 2013 10:17 AM | Feedback (2)
Thursday, December 05, 2013
jQuery PlugIns

Für mein Archiv eine Übersicht der jQuery Plugins: http://www.jquery4u.com/plugins/

posted @ Thursday, December 05, 2013 9:26 AM | Feedback (4)
Thursday, November 21, 2013
FUN mit Cisco VPN-Client

Heute wollte ich auf meinem Rechner einen VPN-Client von Cisco installieren. Die Installation brach ab und mein Rechner regierte nicht mehr.

Nach dem Neustart konnte ich den VPN-Client nicht starten und wollte die Installation wiederholen, bekam jedoch di folgende Fehlermeldung:

“Error 28000: Before installing the Cisco Systems VPN Client 5.0.07.0410, you must uninstall the prvious version of Cisco Systems VPN Client 5.0.07.0410, using the Add/Remove Program Files option in the Control Panel. Then restart your system”

vpn

Der VPN-Client ließ sich jedoch nicht über die Systemsteuerung entfernen. Auch der Versuch einer manuellen Deinstallation nach einer der Anleitungen im Netz ( z.B. How to uninstall Cisco VPN client) half nicht weiter.

Erst der Hinweis, dass man in der Setup-Datei “vpnclient_setup.ini” folgenden Eintrag ändern soll:

Remove Previous=1

half weiter.

Danach das Setup-Programm über die Konsole starten mit: vpnclient_setup.msi /quiet

Jetzt wird der VPN-Client installiert und dies schließt einen Neustart einen. Danach kann man den VPN-Client verwenden.

Danke an: http://fabi.me/sonstiges/cisco-vpn-client-install-problem/comment-page-1/#comment-21721

posted @ Thursday, November 21, 2013 8:22 PM | Feedback (2)
Tuesday, November 12, 2013
Import einer CSV-Datei in SQL-Server

Für mein Archiv ein Beispiel für den Import einer CSV-Datei in die Tabelle eines SQL-Servers:

                using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.UTF7))
                {
                    while (!sr.EndOfStream)
                    {
                        string line = sr.ReadLine();
 
                        if (countImport > 0)
                        {
                            string sqlStatement = "INSERT INTO TABLENAME " 
                                                    " (col_A, col_B, col_C, col_D, col_E, col_F, col_G) " +
                                                    " VALUES (" +
                                                    "'" + line.Split(';')[0] + "'," +
                                                    "'" + line.Split(';')[1] + "'," +
                                                    "'" + line.Split(';')[2] + "'," +
                                                    "'" + line.Split(';')[3] + "'," +
                                                    "'" + line.Split(';')[4] + "'," +
                                                    "'" + line.Split(';')[5] + "'," +
                                                    "'" + line.Split(';')[6] + "'" +
                                                    ")";
 
                            ExecuteNonQuery(sqlStatement);
                            Console.Write(".");
                        }
 
                        countImport++;
                    }
                }

 

Und die Methode ExecuteNonQuery():

        public static void ExecuteNonQuery(string sql)
        {
            SqlConnection conn = new SqlConnection(connectionstring);
            using (conn)
            {
                conn.Open();

                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.ExecuteNonQuery();
            }
        }
posted @ Tuesday, November 12, 2013 12:51 PM | Feedback (2)
Saturday, October 26, 2013
Datum im gewünschten Format zurückgeben

Fürs Archiv:

Manchmal ist es notwendig das Datum in einem bestimmten Format zurückzugeben, z.B. YYMMDD,

dies kann man mit der folgenden Codezeile erledigen:

string dateString = DateTime.Now.ToString("yyyyMMdd");

posted @ Saturday, October 26, 2013 12:41 PM | Feedback (4)
Wednesday, October 09, 2013
Per SQL eine Datenbankdokumentation erstellen

Hier ein kleines SQL-Skript welches alle Tabellen einer Datenbank mit Spalten und Datentypen ausgibt. Dieses Skript kann bei der Dokumentation einer Datenbank helfen:

SELECT schema_name=sys.schemas.name,
       table_name=sys.objects.name,
       column_name=sys.columns.name,
       colum_type=sys.types.name,
       length=sys.columns.max_length
FROM   sys.objects
       JOIN sys.columns
         ON sys.objects.[object_id] = sys.columns.[object_id]
       JOIN sys.schemas
         ON sys.schemas.schema_id = sys.objects.schema_id
       JOIN sys.types
         ON sys.columns.system_type_id = sys.types.system_type_id
WHERE  sys.objects.type = 'U'
       -- U=USER_TABLE, S=SYSTEM_TABLE
       -- V=VIEW, P=SQL_STORED_PROCEDURE
       AND sys.types.name <> 'sysname'
ORDER  BY sys.schemas.name,
          sys.objects.name,
          sys.columns.column_id 

posted @ Wednesday, October 09, 2013 12:37 PM | Feedback (5)
Wednesday, September 18, 2013
FUN mit der RadioButtonList von Devexpress

Bei der RadioButtonList von Devexpress ist es nicht möglich mit JavaScript im Client einen Radiobutton aus dieser Liste zu markieren.

Der Grund hierfür liegt darin, dass Devexpress für die Darstellung der Radiobuttons eine Hintergrundgrafik verwendet:

DXR

Zwar kann man per JavaScript/jQuery die Hintergrundgrafik entsprechend verschieben, jedoch bleibt die Grafik stehen wenn man einen anderen Radiobutton auswählt.

FAZIT: Wenn man eine RadioButtonList im Client per JavaScript updaten möchte dann besser die Finger vom der Komponente von Devexpress lassen.

posted @ Wednesday, September 18, 2013 12:32 PM | Feedback (2)
Wednesday, September 11, 2013
MCSD Web Applications Solutions Developer

MCSD

Inzwischen habe ich meine Zertifizierung zum MCSD Web Applications Solutions Developer abgeschlossen Smiley

posted @ Wednesday, September 11, 2013 5:52 PM | Feedback (2)
Thursday, August 22, 2013
Code-Formatierung in HTML

Hier zwei praktischer Links um Code in HTML zu konvertieren:
 
C#: http://www.manoli.net/csharpformat/
 
SQL: http://www.dpriver.com/pp/sqlformat.htm

posted @ Thursday, August 22, 2013 5:47 PM | Feedback (2)
Thursday, August 01, 2013
Sicherstellen, dass aktualisiert JavaScript-Dateien geladen werden

In der Praxis, vor allem in großen Firmennetzwerken kommt es vor dass auf der Route zum Webserver verschiedene Proxys liegen und man sich wundert, dass eine aktualisierte JavaScript-Datei auf dem Intranet-Webserver nicht im lokalen Browser ankommt.

Hier kann man sich helfen in dem man an den Aufruf der JavaScript-Datei mit “?” einen Parameter anhängt, die Parameter könnt z.B. eine Zufallszahl sein.

Am sinnvollsten ist es jedoch als Parameter das Datum der letzten Änderung der JavaScript-Datei zu verwenden, dann wird die Datei nur neu geladen, wenn sich wirklich etwas geändert hat:

/// <summary>
/// Handles the prerender event
/// </summary>
/// <param name="e">arguments for the event</param>
protected override void OnPreRender(EventArgs e)
{
   string path = Server.MapPath("~/Scripts/JavaScriptFile.js");
   FileInfo info = new FileInfo(path);
   ScriptManager.RegisterClientScriptInclude(
      this
,
      typeof(_Default),
      "mainScript"
,
      string.Format("{1}?id={0}", info.LastWriteTime, this.ResolveClientUrl("~/Scripts/ JavaScriptFile.js")));

   base.OnPreRender(e);
}

posted @ Thursday, August 01, 2013 11:38 AM | Feedback (2)