新人求教。下面代码各什么意思

private void all_track(int id)
{
//datagridview中写入数据
string scn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据表.mdb";
OleDbConnection mycn = new OleDbConnection(scn);

        mycn.Open();
        OleDbCommand mycmd = new OleDbCommand();
        mycmd.Connection = mycn;
        mycmd.CommandType = CommandType.Text;

        string c = "select * from point1 where id='" + id + "'";

        mycmd.CommandText = c;
        OleDbDataAdapter add = new OleDbDataAdapter(mycmd);
        DataSet ds = new DataSet();
        add.Fill(ds, "a");
        DataTable dt = new DataTable();
        dt = ds.Tables["a"];


        string name;
        IPointCollection ppc = new PolylineClass();
        for (int i = 0; i < dt.Rows.Count; i++)
        {

            name = dt.Rows[i]["id"].ToString();
            name = name.Trim();
            double x = Convert.ToDouble(dt.Rows[i]["x"]);
            double y = Convert.ToDouble(dt.Rows[i]["y"]);
            ITextElement pte = new TextElementClass();
            ISimpleTextSymbol psts = new TextSymbolClass();
            IRgbColor prc = new RgbColorClass();

            IFont mf = new StdFontClass();
            mf.Name = "宋体";//Courier New
            IFontDisp mt = mf as IFontDisp;
            psts.Font = mt;
            psts.Size = 18;
            pte.Symbol = psts;
            pte.Text = name;
            IElement pelt = pte as IElement;
            IElementProperties pelet = pelt as IElementProperties;
            pelet.Name = name;
            IElement pel = new MarkerElementClass();
            IPoint pp = new PointClass();
            pp.PutCoords(x, y);
            ppc.AddPoints(1, ref pp);
            pel.Geometry = pp;
            pelt.Geometry = pp;
            IElementProperties pele = pel as IElementProperties;
            pele.Name = name;
            ISimpleMarkerSymbol psm = new SimpleMarkerSymbolClass();
            IRgbColor prg = new RgbColorClass();
            IMarkerElement pme = pel as IMarkerElement;
            IRgbColor prgb = new RgbColorClass();

            pgc.AddElement(pel, 0);

            pgc.AddElement(pelt, 0);

            this.axMapControl1.ActiveView.Refresh();

        }

        IPolyline ppl = ppc as IPolyline;
        IElement pele1 = new LineElementClass();
        pele1.Geometry = ppl;

        ILineElement ple = pele1 as ILineElement;
        ISimpleLineSymbol psl = new SimpleLineSymbolClass();
        //psl.Style = esriSimpleLineStyle.esriSLSSolid;   // ctrl + J
        IRgbColor prg1 = new RgbColorClass();

        pgc.AddElement(pele1, 0);
        this.axMapControl1.ActiveView.Refresh();

2个回答

private void all_track(int id)
{
//datagridview中写入数据
string scn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据表.mdb"; 读取access数据源
OleDbConnection mycn = new OleDbConnection(scn); 建立连接
mycn.Open(); 打开连接
OleDbCommand mycmd = new OleDbCommand(); 初始化命令
mycmd.Connection = mycn; 打开连接
mycmd.CommandType = CommandType.Text; 设置数据库命令

    string c = "select * from point1 where id='" + id + "'"; 查询符合的id

    mycmd.CommandText = c; 设置sql语句
    OleDbDataAdapter add = new OleDbDataAdapter(mycmd); 创建适配器
    DataSet ds = new DataSet(); 创建数据集
    add.Fill(ds, "a"); 填充数据
    DataTable dt = new DataTable(); 初始化表
    dt = ds.Tables["a"]; 获取表


    string name; 定义名字变量
    IPointCollection ppc = new PolylineClass(); 定义点
    for (int i = 0; i < dt.Rows.Count; i++) 遍历数据库
    {

        name = dt.Rows[i]["id"].ToString(); 取得id
        name = name.Trim(); 对名字截取,去到空格
        double x = Convert.ToDouble(dt.Rows[i]["x"]); x坐标
        double y = Convert.ToDouble(dt.Rows[i]["y"]); y坐标
        ITextElement pte = new TextElementClass(); 文字元素
        ISimpleTextSymbol psts = new TextSymbolClass(); 字符
        IRgbColor prc = new RgbColorClass( 颜色);

        IFont mf = new StdFontClass(); 字体类
        mf.Name = "宋体";//Courier New 宋体字体
        IFontDisp mt = mf as IFontDisp; 字体
        psts.Font = mt; 字体
        psts.Size = 18; 大小
        pte.Symbol = psts; 设置符号
        pte.Text = name; 设置名称
        IElement pelt = pte as IElement; 元素
        IElementProperties pelet = pelt as IElementProperties; 属性
        pelet.Name = name; 设置名称
        IElement pel = new MarkerElementClass(); 元素
        IPoint pp = new PointClass(); 画点
        pp.PutCoords(x, y); 放线
        ppc.AddPoints(1, ref pp); 添加点
        pel.Geometry = pp; 设置坐标
        pelt.Geometry = pp; 设置坐标
        IElementProperties pele = pel as IElementProperties; 属性
        pele.Name = name; 设置名称
        ISimpleMarkerSymbol psm = new SimpleMarkerSymbolClass(); 添加符号
        IRgbColor prg = new RgbColorClass(); 颜色
        IMarkerElement pme = pel as IMarkerElement; 标记元素
        IRgbColor prgb = new RgbColorClass(); 颜色

        pgc.AddElement(pel, 0); 添加pel

        pgc.AddElement(pelt, 0); 添加元素

        this.axMapControl1.ActiveView.Refresh(); 刷新界面

    }

    IPolyline ppl = ppc as IPolyline;点
    IElement pele1 = new LineElementClass(); 画线
    pele1.Geometry = ppl; 地理坐标

    ILineElement ple = pele1 as ILineElement; 线条元素
    ISimpleLineSymbol psl = new SimpleLineSymbolClass(); 画线条
    //psl.Style = esriSimpleLineStyle.esriSLSSolid;   // ctrl + J 实心画笔
    IRgbColor prg1 = new RgbColorClass(); 颜色类

    pgc.AddElement(pele1, 0); 添加元素
    this.axMapControl1.ActiveView.Refresh(); 刷新

被楼上的耐心感动了。。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问