gregurs Posted May 27, 2012 at 06:47 PM Report #458404 Posted May 27, 2012 at 06:47 PM Boa tarde estou a fazer um trabalho e preciso de apartir de uma linha selecionada do datagrid gerar o xml o código que tenho para fazer isso é este: for (int j = 0; j < this.dataGridView1.Rows.Count - 1; j++) { if (this.dataGridView1.Rows[j].Selected) { int ds = Convert.ToInt32(this.dataGridView1[0, j].Value.ToString()); int c1 = Convert.ToInt32(this.dataGridView1[1, j].Value.ToString()); DateTime c2 = Convert.ToDateTime(this.dataGridView1[2, j].Value.ToString()); DateTime c3 = Convert.ToDateTime(this.dataGridView1[3, j].Value.ToString()); int c4 = Convert.ToInt32(this.dataGridView1[4, j].Value.ToString()); XmlTextWriter writer = new XmlTextWriter("ReceitaXML.xml", System.Text.Encoding.UTF8); writer.WriteStartDocument(true); writer.Formatting = Formatting.Indented; writer.Indentation = 2; writer.WriteStartElement("Table"); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); writer.WriteStartElement("Table"); writer.WriteStartElement("Receita"); writer.WriteEndElement(); writer.WriteStartElement("ID"); writer.WriteValue(ds); writer.WriteEndElement(); writer.WriteStartElement("Paciente"); writer.WriteValue(c1); writer.WriteEndElement(); writer.WriteStartElement("Data"); writer.WriteValue(c2); writer.WriteEndElement(); writer.WriteStartElement("Data_Validade"); writer.WriteValue(c3); writer.WriteEndElement(); MessageBox.Show("XML File created ! "); Já fiz várias pesquisa mas não encontrei o que procuro e quando carrego no button não faz nada outra coisa como posso gerar xsd a partir do que tenho?
rumbafum Posted May 27, 2012 at 09:39 PM Report #458421 Posted May 27, 2012 at 09:39 PM (edited) Podes usar um DataSet com uma DataTable para este propósito. Cria um dataset, com uma datatable, com as colunas que precisas. Escreves o xsd desse dataset para ficheiro: DataSet.WriteXmlSchema() preenches o DataSet com os dados e depois usa DataTable.WriteXml() para exportares para xml. Se o teu esquema de dados é sempre o mesmo, Cria um dataset com uma datatable e usa o mesmo para este propósito usando designer do VS. Assim saltarás a parte de teres de definir a estrutura na hora e beneficias pelo uso de uma estrutura fortemente tipada Edited May 27, 2012 at 09:43 PM by rumbafum
gregurs Posted June 9, 2012 at 10:50 AM Author Report #461613 Posted June 9, 2012 at 10:50 AM (edited) boas tenho este codigo para gerar o xml o problema é que o id aparece assim ="_x0033_" e a data aparece _x0030_3-05-2015" a data é 03-05-2015 e o codigo que tenho é este DataSet d = new DataSet("DataSet1"); d.WriteXmlSchema("c:\\Receita.xml"); DataTableCollection dtc; dtc = d.Tables; DataTable t = new DataTable("ReceitaXML"); dtc.Add(t); d.WriteXmlSchema("c:\\Receita.xml"); DataColumnCollection tc = t.Columns; DataColumn c; Type ty; ty = Type.GetType("System.Int32"); c = new DataColumn(dataGridView1.CurrentRow.Cells[0].Value.ToString() , ty); tc.Add©; ty = Type.GetType("System.DateTime"); c = new DataColumn(dataGridView1.CurrentRow.Cells[1].Value.ToString() , ty); tc.Add©; ty = Type.GetType("System.DateTime"); c = new DataColumn(dataGridView1.CurrentRow.Cells[2].Value.ToString(), ty); tc.Add©; // dtc.Add(t); /* t = new DataTable("XMLGerado"); ty = Type.GetType("System.String"); c = new DataColumn("Name", ty); tc = t.Columns; tc.Add©; dtc.Add(t);*/ d.WriteXmlSchema("c:\\Receita.xml"); MessageBox.Show("XML Atualizado"); Edited June 9, 2012 at 10:56 AM by gregurs
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now