none
데이터그리드뷰에 데이터를 넣은 후 .INI파일로 EXPORT하는 방법

    질문

  • http://www.hoons.net/Board/qacshap/Content/67073

    위에 예시처럼 데이터를 그리드에 입력시키고 버튼을 누르면 .INI파일로 출력되게 끔 하려고 합니다.

    어떻게 코드를 짜야될까요ㅜㅜ 코드 안에서는 되는데 그리드에서 입력핵서 저장 버튼을 누르면 반영이 안되네요..

    2019년 4월 22일 월요일 오후 11:28

모든 응답

  • 안녕하세요

    위 링크에는 정보가 별로 없어 보이는데 데이터를 Datagridview 에 넣은 후 .INI 파일로 EXPORT 할 경우 아래 코드를 참고하시기 바랍니다.

    using System;
    using System.Data;
    using System.IO;
    using System.Reflection;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Windows.Forms;
    using IniParser;
    using IniParser.Model;
    
    namespace WindowsForms
    {
        public partial class Test : Form
        {
            public Test()
            {
                InitializeComponent();
            }
    
            private void Test_Load(object sender, EventArgs e)
            {
    
    
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                DataTable table = new DataTable();
                table.Columns.Add("Section", typeof(string));
                table.Columns.Add("Key", typeof(string));
                table.Columns.Add("Value", typeof(string));
                table.Rows.Add("a", "1", "a1");
                table.Rows.Add("b", "2", "b2");
                table.Rows.Add("c", "3", "c3");
                table.Rows.Add("d", "4", "d4");
                dataGridView1.DataSource = table;
                dataGridView1.AllowUserToAddRows = false;
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                IniFile iniFile = new IniFile(@"C:\Users\wendyz.WICRESOFT.000\OneDrive\Projects\VS2017 Project\WindowsForms\WindowsForms\bin\Debug\1-iniFile.ini");
    
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    iniFile.IniWriteValue(dataGridView1.Rows[i].Cells[0].Value.ToString(), dataGridView1.Rows[i].Cells[1].Value.ToString(), dataGridView1.Rows[i].Cells[2].Value.ToString());
                }
                MessageBox.Show("successfully");
    
            }
        }
        /// <summary>
        /// Create a New INI file to store or load data
        /// </summary>
        public class IniFile
        {
            public string path;
    
            [DllImport("kernel32")]
            private static extern long WritePrivateProfileString(string section,
                string key, string val, string filePath);
            [DllImport("kernel32")]
            private static extern int GetPrivateProfileString(string section,
                     string key, string def, StringBuilder retVal,
                int size, string filePath);
    
            /// <summary>
            /// INIFile Constructor.
            /// </summary>
            /// <PARAM name="INIPath"></PARAM>
            public IniFile(string INIPath)
            {
                path = INIPath;
            }
            /// <summary>
            /// Write Data to the INI File
            /// </summary>
            /// <PARAM name="Section"></PARAM>
            /// Section name
            /// <PARAM name="Key"></PARAM>
            /// Key Name
            /// <PARAM name="Value"></PARAM>
            /// Value Name
            public void IniWriteValue(string Section, string Key, string Value)
            {
                WritePrivateProfileString(Section, Key, Value, this.path);
            }
    
            /// <summary>
            /// Read Data Value From the Ini File
            /// </summary>
            /// <PARAM name="Section"></PARAM>
            /// <PARAM name="Key"></PARAM>
            /// <PARAM name="Path"></PARAM>
            /// <returns></returns>
            public string IniReadValue(string Section, string Key)
            {
                StringBuilder temp = new StringBuilder(255);
                int i = GetPrivateProfileString(Section, Key, "", temp,
                                                255, this.path);
                return temp.ToString();
    
            }
        }
    }
    

    MSDN Community Support Ricky

    커뮤니티 멤버에게 유익 할 수 있 문제를 해결 한 답변을 '답변으로 표시'를 클릭하고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2019년 4월 25일 목요일 오전 8:42
    중재자