2013-09-20 3 views
-1

Может понравиться кому-то сказать, как я могу вставлять данные из текстового блока в базу данных SQL, но в двоичном формате. Вот часть моего кода:Вставьте двоичные данные из текстового поля в столбец

private void button1_Click(object sender, EventArgs e) 
{ 
    string connectionString = @"Data Source=" + File.ReadAllText("Server.ini") + ";" + "Initial Catalog=" + "lin2db" + ";" + "User ID=" + File.ReadAllText("User.ini") + ";" + "Password=" + File.ReadAllText("Password.ini"); 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    using (SqlCommand command = connection.CreateCommand()) 
    { 
     command.CommandText = "INSERT INTO server (id, name, ip, inner_ip, ageLimit, pk_flag, kind, port, region) VALUES (@id, @name, @ip, @inner_ip, @ageLimit, @pk_flag, @kind, @port, @region)"; 

     command.Parameters.AddWithValue("@id", textBox1.Text); 
     command.Parameters.AddWithValue("@name", textBox2.Text); 
     command.Parameters.AddWithValue("@ip", textBox3.Text); 
     command.Parameters.AddWithValue("@inner_ip", textBox4.Text); 
     command.Parameters.AddWithValue("@ageLimit", textBox5.Text); 
     command.Parameters.AddWithValue("@pk_flag", textBox6.Text); 
     command.Parameters.AddWithValue("@kind", textBox7.Text); 
     command.Parameters.AddWithValue("@port", textBox8.Text); 
     command.Parameters.AddWithValue("@region", textBox9.Text); 
     connection.Open(); 
     command.ExecuteNonQuery(); 
} 
+0

Вам нужно добавить более подробную информацию о том, что вы пытаетесь, и, возможно, какие ошибки вы получаете. Код, который у вас есть в вопросе, выглядит хорошо, и ничего не показывает о двоичных данных ... –

+0

@MaxVernon Проблема в том, что я не делаю, чтобы данные из текстового поля были вставлены в таблицу sql как двоичные, exmaple здесь 'command.Parameters.AddWithValue (" @ id ", textBox1.Text);' Я хочу добавить двоичный файл –

ответ

0

на ONBLUR EVET этого текстового поля изменить этот текст в двоичный формат

с помощью кода

String s = "foo"; 
    byte[] bytes = s.getBytes(); 
    StringBuilder binary = new StringBuilder(); 
    for (byte b : bytes) 
    { 
    int val = b; 
    for (int i = 0; i < 8; i++) 
    { 
     binary.append((val & 128) == 0 ? 0 : 1); 
     val <<= 1; 
    } 
    binary.append(' '); 
    } 
    System.out.println("'" + s + "' to binary: " + binary); 

затем вставить что двоичные данные в столбце

+0

, это не сработает? : 'command.Parameters.AddWithValue (" @ name ", SqlDbType.Binary, textBox3.Text);' –

+0

@ принц может показать мне пример в моем коде? –

0

Решено: Я использовал в SQL Query, было более легко: command.CommandText = "INSERT INTO server (id, name, ip, inner_ip, ageLimit, pk_flag, kind, port, region) VALUES (CONVERT(binary,@id), @name, @ip, @inner_ip, @ageLimit, @pk_flag, @kind, @port, @region)";

Смежные вопросы