Gewusst wie: speichern eine " 0 " als erste Zahl in SQL
Ich habe eine Tabelle, die speichert nur 6-stellige zahlen-und es gibt zahlen, die 0 enthalten, da es der erste Brief selbst gibt es zahlen, die enthalten mehr als eine 0 ist, als es die ersten Buchstaben..
using (TransactionScope scope = new TransactionScope())
{
using (SqlConnection conn = new SqlConnection(constr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add(new SqlParameter("@numType", numTyp));
cmd.Parameters.Add(new SqlParameter("@numFrom", textBox1.Text));
cmd.Parameters.Add(new SqlParameter("@numTo", textBox2.Text));
cmd.ExecuteNonQuery();
}
conn.Close();
}
scope.Complete();
Daten gespeichert und auch abrufen, aber wenn die ersten zahlen sind 0, dann sql lässt Sie, Sie sind wichtig... für zB eine Nummer 001234 ist als 1234 gespeichert in der db .. also, wie kann ich dieses Problem beheben ich gesucht, aber kein Glück ..
mithilfe von SQL Server 2008 visualstudio 2010 c#
hoffe, es ist nicht vage, vielen Dank im Voraus
EDIT: ich bin mit int als Datentyp
- Ich lief in ähnliche problem, was wir Taten, war, um es zu speichern in einem anderen Feld als string-Typ
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein Datentyp-Problem: Wenn Sie
int
, der numerische Wert wird gespeichert, so 001234 gespeichert werden, wie die Zahl 1234.Können Sie neu erstellen, die null-Polsterung später, aber es ist nicht Teil der gespeicherten Daten:
0001234
ist die gleiche integer-Zahl als01234
oder1234
.String.Format()
nach Abruf.0001234
und1234
sind verschiedene Werte, die Verwendung eines string-Daten-TypKönnen Sie nicht. Das problem ist nicht das abrufen, es ist, dass die Daten in int Spalten, da nur ganze zahlen, ohne den string formatieren.
Verwenden Sie einen anderen Datentyp, wenn Sie möchten, dass Ihre Datenbank, die zum speichern der Anzahl der 0 vor der int-Wert, ein string, ein paar int-Werten mit einem von Ihnen wird die Anzahl der Nullen, oder ein anderes format ist besser geeignet, um Ihre genauen Bedürfnisse.
EDIT : wenn Ihr Nullen sind nicht sinnstiftende (Sie sind nur zur Ergänzung), halten Sie Ihr format als int und fügen Sie einfach so viele "0" am Anfang, wie Sie wollen.
nach zu Fragen und die Beurteilung von anderen beantworten, erinnerte ich mich an eine Lektion, dachte in der high school, die besagt, dass int speichert 235 Zeichen, aber in Wirklichkeit speichert es 234 Zeichen, so Frage ich mich immer, dass der Letzte Buchstabe möglicherweise nicht gespeichert werden, aber jetzt im praktischen ist es klar, dass es nicht speichert, den ersten Brief zu 0, lol, ich änderte den Datentyp nvarchar(50), die es speichert abrufen, beide mit 0-Zeichen egal, wie viel 😉