Jump to content

Inserir imagem em c#


sYnced
 Share

Recommended Posts

	public static string InsereJogador(string nome, string apelido, int clube, int idade, int ano,Image foto)
	{
		SqlConnection cn = null;
		SqlCommand cmd = null;
		try
		{
			StringBuilder stb = new StringBuilder();
			cn = new SqlConnection(cs);
			cn.Open();
			stb.Append("INSERT into Jogadores(Nome, Apelido, Clube, Idade, DataDeNascimento, Fotografia) ");
			stb.Append("values (");
			stb.Append("'" + NormalizaStrings(nome) + "',");
			stb.Append("'" + NormalizaStrings(apelido) + "',");
			stb.Append(clube + ",");
			stb.Append(idade + ",");
			stb.Append(ano + ",");
			stb.Append(foto);

			cmd = new SqlCommand(stb.ToString());
			cmd.Connection = cn;
			cmd.ExecuteNonQuery();
		}
		finally
		{
			cn.Close();
		}

	public static string InsereJogador(string nome, string apelido, int clube, int idade, int ano,Image foto)
	{
		SqlConnection cn = null;
		SqlCommand cmd = null;
		try
		{
			StringBuilder stb = new StringBuilder();
			cn = new SqlConnection(cs);
			cn.Open();
			stb.Append("INSERT into Jogadores(Nome, Apelido, Clube, Idade, DataDeNascimento, Fotografia) ");
			stb.Append("values (");
			stb.Append("'" + NormalizaStrings(nome) + "',");
			stb.Append("'" + NormalizaStrings(apelido) + "',");
			stb.Append(clube + ",");
			stb.Append(idade + ",");
			stb.Append(ano + ",");
			stb.Append(foto);
			cmd = new SqlCommand(stb.ToString());
			cmd.Connection = cn;
			cmd.ExecuteNonQuery();
		}
		finally
		{
			cn.Close();
		}

O erro que me dá é o seguinte:

Incorrect syntax near 'Bitmap'.

Link to comment
Share on other sites

Não é possível inserir imagens diretamente no banco de dados, você antes precisa converter para algum formato que o Banco de Dados entenda (para isto precisaria ver como está estruturada a sua tabela), ou preferencialmente gravar no banco somente o link para a imagem e gravar a imagem separadamente diretamente no disco. O uso de imagens e outros dados potencialmente grandes em banco de dados SQL não é recomendado por razões de performance.

Fernando Lage Bastos - MCP/MCTS/MCPD

Link to comment
Share on other sites

Não é possível inserir imagens diretamente no banco de dados, você antes precisa converter para algum formato que o Banco de Dados entenda (para isto precisaria ver como está estruturada a sua tabela), ou preferencialmente gravar no banco somente o link para a imagem e gravar a imagem separadamente diretamente no disco. O uso de imagens e outros dados potencialmente grandes em banco de dados SQL não é recomendado por razões de performance.

podes arranjar um link a explicar isso ?

Muito obrigado!

Link to comment
Share on other sites

O ideal para Inserires uma imagem é no teu command usares um parâmetro..

Aqui vai um exemplo:

query = "insert into test_table(id_image,pic) values(" + textBox1.Text + "," + " @pic)";
SqlParameter picparameter = new SqlParameter();
picparameter.SqlDbType = SqlDbType.Image;
picparameter.ParameterName = "pic";
picparameter.Value = picbyte;
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.Add(picparameter);
cmd.ExecuteNonQuery();

o @pic tem de ser o mesmo que o picparameter.ParameterName

também podes fazer o mesmo nos Updates.

Cumprimentos

  • Vote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.