C# :: IK-Nummer Prüfung

1. Dezember 2011 1 Kommentar

Ok, das hier ist echt ein bisschen speziell. Jede Einrichtung die Leistungen nach dem SGB erbringt kann in Deutschland  eine eindeutige Identifikationsnummer beantragen - die sogenannte IK-Nummer (siehe http://www.therapedia.de/wiki/index.php/IK-Nummer)

Eine IK-Nummer lässt sich auf Gültigkeit prüfen:

Die ersten 2 Ziffern (“Klassifikation”) kennzeichnen die Art der Einrichtung oder die Personengruppe
Die Ziffern 3 und 4 (“Regionalbereich”) kennzeichnen das Bundesland der Einrichtung
Die Ziffer 5 bis 8 (“Seriennummer”) werden fortlaufend vergeben
Die Ziffer 9 dient als Prüfziffer

 

Hier das Snippet für die Prüfung dieser Nummer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 public bool IstIKGueltig(string IKNr)
        {
            bool retVal = false;
 
            int ik1 = Quersumme(Int32.Parse(IKNr.Substring(0, 1)) * 2);
            int ik2 = Int32.Parse(IKNr.Substring(1, 1));
            int ik3 = Quersumme(Int32.Parse(IKNr.Substring(2, 1)) * 2);
            int ik4 = Int32.Parse(IKNr.Substring(3, 1));
            int ik5 = Quersumme(Int32.Parse(IKNr.Substring(4, 1)) * 2);
            int ik6 = Int32.Parse(IKNr.Substring(5, 1));
 
            int ikSum = (ik1 + ik2 + ik3 + ik4 + ik5 + ik6);
            string ikPruef = ikSum.ToString().Substring(ikSum.ToString().Length - 1, 1);
 
            if (Int32.Parse(IKNr.Substring(6, 1)) == Int32.Parse(ikPruef))
                retVal = true;
 
            return retVal;
        }

Hier noch die Funktion zur Ermittlung der Quersumme:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private int Quersumme(int iNumber)
        {
            string strNumbers = iNumber.ToString();
            iNumber = 0;
            List lstParts = new List();
            foreach (char ch in strNumbers)
            {
                lstParts.Add(Convert.ToInt32(ch.ToString()));
            }
            foreach (int i in lstParts)
            {
                iNumber = iNumber + i;
            }
            return iNumber;
        }
KategorienC#, Sonstiges Tags:

WCF :: Service Reference meldet KeyNotFoundException

12. Juli 2011 Keine Kommentare

Lange suchen und versuchen, und doch gefunden…

Mein WCF-Service meldete sich mit einer “KeyNotFoundException” zurück. Lag an der Verwendung von “wsHttpBinding” in der web.config.

Nach der Änderung des Binding auf “basicHttpBinding” in der web.config, aktualisieren der Service-Referenz und neu erstellen des Projekts lief alles…

 

Kategorienasp.NET, WCF Tags:

Mal was privates…

28. Juni 2011 Keine Kommentare

Mein Neffe Simon leidet an einer sehr seltenen Erbkrankheit (Fanconi Anämie). Daher erhält er in den nächsten Tagen eine Knochenmark-Transplantation in der Uni-Klinik Würzburg.
Er hat ein Tagebuch eingerichtet, in dem er uns auf dem Laufenden hält:
http://www.simon-stein-fanconi.de

Ich würde mich freuen, wenn dieses Tagebuch eure Aufmerksamkeit erfahren würde und dazu beitragen würde, dass auch eine seltene Krankheit ins Bewusstsein der Öffentlichkeit Einzug finden könnte…

KategorienAllgemein, Sonstiges Tags:

Analysis Services :: Query Timeout Expired HYT00

24. Juni 2011 Keine Kommentare

40.000.000 Datensätze in mehreren Measure-Gruppen und dann das: Query Timeout Expired HYT00

Und wann passiert das? Natürlich erst, wenn der “Cube” schon stundenlang am Rechnen ist… Und dabei ist es so einfach:

In den Eigenschaften des Analysis Servers den ExternalCommandTimeout erhöhen und schon ist alles gut…

siehe hier:  http://jesseorosz.wordpress.com/2006/12/19/hyt00-error-query-timeout-expired/

KategorienTSQL MSSQL SQL Tags:

SQL :: Wochentag eines Datums ermitteln

19. Mai 2011 Keine Kommentare

Irgendwie brauche ich es immer wieder, den Wochentag eines Datums in einer meiner Tabellen. Und immer wieder muss ich es mir googlen. Also jetzt hier verewigt:

1
2
3
4
SELECT DATENAME(w, getdate())
 
w = Wochentag
m = Monatsname

Mit einem vorangestellten

1
SET LANGUAGE german

lässt sich die Rückgabe sogar eindeutschen. Enstsprechend funktioniert das natürlich auch mit jeder beliebigen anderen Sprache sofern man einen entsprechenden Sprachalias auf dem SQL-Server zur Verfügung hat…

KategorienTSQL MSSQL SQL Tags:

Sharepoint 2010 :: PassPhrase ändern

17. Mai 2011 Keine Kommentare

Um neue Server in eine Sharepoint-Farm zu integrieren ist die PassPhrase nötig. Aber vielen Sharepoint-Admins geht es so wie mir: Die PassPhrase wurde seinerzeit gewählt und natürlich vergessen…

Um die PassPhrase zu ändern starten Sie

Start > Programme > Microsoft Sharepoint 2010 Products
> Sharepoint 2010-Verwaltungsshell

und geben die folgende Zeile ein:

X:\PS> $neuepassphrase = ConvertTo-SecureString -asPlainText -Force 

Nun erscheint eine Eingabemöglichkeit
String:
Hier geben Sie nun Ihre neue PassPhrase im Klartext ein

Anschliessend geben Sie folgende Zeile ein:

X:\PS> Set-SPPassPhrase -PassPhrase $neuepassphrase -Confirm

Eingabemöglichkeit
ConfirmPassPhrase:
Hier geben Sie nocheinmal Ihre gewählte PassPhrase ein

Nach dieser Eingabe wird Ihnen noch eine Sicherheitsabfrage angezeigt, die Sie mit J (Ja) bestätigen

KategorienSharepoint Tags:

asp.net :: GridView DELETE ohne Primary Key

GridViews sind eine schöne Sache. Man kann schnell und einfach Daten auf seiner Form ausgeben, bearbeiten und vor allen Dingen komfortabel löschen.
Aber nur, wenn die Bezugsspalte in der Datenbank als Primary Key hinterlegt ist.

In meinem Fall sollte eine Terminserie, die aus vielen Einzelterminen (jeder Termin hat eine ID -> Primary Key) anhand einer SerienGuid (varchar -> KEIN PK), die diese Termine zu einer Serie zusammenfasst, gelöscht werden.

Hierzu habe ich im GridView folgende Änderungen vornehmen müssen:

DataKeyNames [Tag] entfernen
OnRowCommand=”GridView1_RowCommand” einfügen

Ein neues Template-Field hinzufügen:

1
2
3
4
5
6
7
8
9
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID=”ImageButton1″ runat=”server” ImageUrl=”~/images/icon_delete.gif”
CommandName=”DeleteIt” OnClientClick=return confirm(‘Möchten Sie diesen Eintrag wirklich löschen?);”
CommandArgument=<%# Eval(“SerienGuid”) %>‘ />
</ItemTemplate>
<HeaderStyle BackColor=#EBF1FD” HorizontalAlign=”Center” />
<ItemStyle BackColor=”White” HorizontalAlign=”Center” />
</asp:TemplateField>

Anschliessend im CodeBehind:

1
2
3
4
5
6
7
8
9
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
   if (e.CommandName == “DeleteIt”)
   {
      String sql = “DELETE FROM SerienTabelle”
            +WHERE SerienGuid = ‘” + e.CommandArgument  + “‘”;
      [...]
   }
}
Kategorienasp.NET Tags: