Пример #1
0
        public void AcceptChanges()
        {
            var ds = new DataSet();
            DataTable dtP = DataProvider.CreateParentDataTable();
            DataTable dtC = DataProvider.CreateChildDataTable();
            ds.Tables.Add(dtP);
            ds.Tables.Add(dtC);
            ds.Relations.Add(new DataRelation("myRelation", dtP.Columns[0], dtC.Columns[0]));

            //create changes
            dtP.Rows[0][0] = "70";
            dtP.Rows[1].Delete();
            dtP.Rows.Add(new object[] { 9, "string1", "string2" });

            // AcceptChanges
            ds.AcceptChanges();
            Assert.Equal(null, dtP.GetChanges());

            //read only exception
            dtP.Columns[0].ReadOnly = true;
            // check ReadOnlyException
            Assert.Throws<ReadOnlyException>(() => dtP.Rows[0][0] = 99);

            // check invoke AcceptChanges
            ds.AcceptChanges();
        }
Пример #2
0
        private string Foo(int longIndexName, DataSet ds)
        {
            string Key = ds.Tables[0].Rows[0]["Key"].ToString();

            if (!string.IsNullOrEmpty(Key) && Key != "SAMP")
            {
                try
                {
                    ds.Tables[0].Rows[0]["Key"] = Encoding.ASCII.GetString(PerfFormOp(Convert.FromBase64String(Key), longIndexName));
                    ds.AcceptChanges();
                }
                catch (Exception ex)
                {
                    Logging.Post(ex);
                }
            }

            return ds.GetXml();
        }
Пример #3
0
        public void Generate()
        {
            var ds = new DataSet();
            ds.Tables.Add(DataProvider.CreateParentDataTable());
            ds.Tables.Add(DataProvider.CreateChildDataTable());
            ds.Relations.Add(new DataRelation("myRelation", ds.Tables[0].Columns[0], ds.Tables[1].Columns[0]));

            DataRow drParent = ds.Tables[0].Rows[0];
            DataRow drChild = ds.Tables[1].Rows[0];
            drParent.Delete();
            drChild.Delete();
            ds.AcceptChanges();

            // RowNotInTableException - AcceptChanges
            Assert.Throws<RowNotInTableException>(() =>
            {
                drParent.AcceptChanges();
            });

            // RowNotInTableException - GetChildRows
            Assert.Throws<RowNotInTableException>(() =>
            {
                drParent.GetChildRows("myRelation");
            });

            // RowNotInTableException - ItemArray
            Assert.Throws<RowNotInTableException>(() => drParent.ItemArray);

            // RowNotInTableException - GetParentRows
            Assert.Throws<RowNotInTableException>(() => drChild.GetParentRows("myRelation"));

            // RowNotInTableException - RejectChanges
            Assert.Throws<RowNotInTableException>(() => drParent.RejectChanges());

            // RowNotInTableException - SetParentRow
            Assert.Throws<RowNotInTableException>(() => drChild.SetParentRow(ds.Tables[0].Rows[1]));
        }
Пример #4
0
        // Sauvegarde tous les changements effectué dans le dataset
        public void SaveDataSet(string tableName, DataSet dataSet)
        {
            if (dataSet.HasChanges() == false)
            {
                return;
            }

            switch (connType)
            {
            case ConnectionType.DATABASE_MSSQL:
            {
                try
                {
                    var conn    = new SqlConnection(connString);
                    var adapter = new SqlDataAdapter("SELECT * from " + tableName, conn);
                    var builder = new SqlCommandBuilder(adapter);

                    adapter.DeleteCommand = builder.GetDeleteCommand();
                    adapter.UpdateCommand = builder.GetUpdateCommand();
                    adapter.InsertCommand = builder.GetInsertCommand();

                    lock (dataSet)         // lock dataset to prevent changes to it
                    {
                        adapter.ContinueUpdateOnError = true;
                        DataSet changes = dataSet.GetChanges();
                        adapter.Update(changes, tableName);
                        PrintDatasetErrors(changes);
                        dataSet.AcceptChanges();
                    }

                    conn.Close();
                }
                catch (Exception ex)
                {
                    throw new DatabaseException("Can not save table " + tableName, ex);
                }

                break;
            }

            case ConnectionType.DATABASE_ODBC:
            {
                try
                {
                    var conn    = new OdbcConnection(connString);
                    var adapter = new OdbcDataAdapter("SELECT * from " + tableName, conn);
                    var builder = new OdbcCommandBuilder(adapter);

                    adapter.DeleteCommand = builder.GetDeleteCommand();
                    adapter.UpdateCommand = builder.GetUpdateCommand();
                    adapter.InsertCommand = builder.GetInsertCommand();

                    DataSet changes;
                    lock (dataSet)         // lock dataset to prevent changes to it
                    {
                        adapter.ContinueUpdateOnError = true;
                        changes = dataSet.GetChanges();
                        adapter.Update(changes, tableName);
                        dataSet.AcceptChanges();
                    }

                    PrintDatasetErrors(changes);

                    conn.Close();
                }
                catch (Exception ex)
                {
                    throw new DatabaseException("Can not save table ", ex);
                }

                break;
            }

            case ConnectionType.DATABASE_MYSQL:
            {
                return;
            }

            case ConnectionType.DATABASE_OLEDB:
            {
                try
                {
                    var conn    = new OleDbConnection(connString);
                    var adapter = new OleDbDataAdapter("SELECT * from " + tableName, conn);
                    var builder = new OleDbCommandBuilder(adapter);

                    adapter.DeleteCommand = builder.GetDeleteCommand();
                    adapter.UpdateCommand = builder.GetUpdateCommand();
                    adapter.InsertCommand = builder.GetInsertCommand();

                    DataSet changes;
                    lock (dataSet)         // lock dataset to prevent changes to it
                    {
                        adapter.ContinueUpdateOnError = true;
                        changes = dataSet.GetChanges();
                        adapter.Update(changes, tableName);
                        dataSet.AcceptChanges();
                    }

                    PrintDatasetErrors(changes);

                    conn.Close();
                }
                catch (Exception ex)
                {
                    throw new DatabaseException("Can not save table", ex);
                }
                break;
            }
            }
        }
Пример #5
0
        /// <summary>
        /// 列表页面独有的数据
        /// </summary>
        public void ArticleClassPage()
        {
            int category_id = MyCommFun.RequestInt("cid");

            //--=====begin: 将这个列表(文章类别)的基本信息展示出来 ====--
            Model.article_category category = tDal.GetCategoryByWid(wid, category_id);
            this.Document.SetValue("category", category);
            //--=====end: 将这个列表(文章类别)的基本信息展示出来 ====--

            Tag    orderByTag = this.Document.GetChildTagById("norderby");
            string orderby    = orderByTag.Attributes["value"].Value.ToString();

            Tag    pagesizeTag = this.Document.GetChildTagById("npagesize");
            string pagesizeStr = pagesizeTag.Attributes["value"].Value.ToString();

            int currPage    = 1;                              //当前页面
            int recordCount = 0;                              //总记录数
            int totPage     = 1;                              //总页数
            int pageSize    = MyCommFun.Str2Int(pagesizeStr); //每页的记录数

            if (pageSize <= 0)
            {
                pageSize = 10;
            }
            if (MyCommFun.RequestInt("page") > 0)
            {
                currPage = MyCommFun.RequestInt("page");
            }

            DataSet artlist = new DataSet();

            if (category_id != 0)
            {
                DAL.article artDal = new DAL.article();
                artlist = artDal.GetList("news", category_id, pageSize, currPage, "wid=" + wid, orderby, out recordCount);
                if (artlist != null && artlist.Tables.Count > 0 && artlist.Tables[0].Rows.Count > 0)
                {
                    DataRow dr;
                    for (int i = 0; i < artlist.Tables[0].Rows.Count; i++)
                    {
                        dr = artlist.Tables[0].Rows[i];
                        if (dr["link_url"] != null && dr["link_url"].ToString().Trim().Length > 0)
                        {
                            dr["link_url"] = MyCommFun.urlAddOpenid(dr["link_url"].ToString().Trim(), openid);
                        }
                        else
                        {
                            dr["link_url"] = MyCommFun.urlAddOpenid("detail.aspx?wid=" + wid + "&aid=" + dr["id"].ToString(), openid);
                        }
                        artlist.AcceptChanges();
                    }

                    totPage = recordCount / pageSize;
                    int yushu = recordCount % pageSize;
                    if (yushu > 0)
                    {
                        totPage += 1;
                    }
                    if (totPage < 1)
                    {
                        totPage = 1;
                    }
                }
                if (currPage > totPage)
                {
                    currPage = totPage;
                }
            }
            else
            {
                currPage    = 1;
                recordCount = 0;
                totPage     = 1;
            }
            this.Document.SetValue("totPage", totPage);   //总页数
            this.Document.SetValue("currPage", currPage); //当前页
            this.Document.SetValue("newslist", artlist);  //文章列表

            string beforePageStr = "";                    //上一页
            string nextPageStr   = "";                    //下一页
            string bgrey         = "c-p-grey";
            string ngrey         = "c-p-grey";

            if (currPage <= 1)
            {
                beforePageStr = "";
                bgrey         = "c-p-grey";
            }
            else
            {
                beforePageStr = MyCommFun.ChangePageNum(MyCommFun.getTotalUrl(), (currPage - 1));
                beforePageStr = "href=\"" + beforePageStr + "\"";
                bgrey         = "";
            }

            if (currPage >= totPage)
            {
                nextPageStr = "";
                ngrey       = " c-p-grey";
            }
            else
            {
                nextPageStr = MyCommFun.ChangePageNum(MyCommFun.getTotalUrl(), (currPage + 1));
                nextPageStr = "href=\"" + nextPageStr + "\"";
                ngrey       = "";
            }
            this.Document.SetValue("bpage", beforePageStr); //上一页
            this.Document.SetValue("npage", nextPageStr);   //下一页
            this.Document.SetValue("bgrey", bgrey);         //上一页灰色的样式
            this.Document.SetValue("ngrey", ngrey);         //下一页灰色的样式
        }
        public async void Initialize(string trustedStorePath, string issuerStorePath, string rejectedStorePath)
        {
            CertificatesTable.Rows.Clear();

            m_trustedStorePath  = trustedStorePath;
            m_issuerStorePath   = issuerStorePath;
            m_rejectedStorePath = rejectedStorePath;

            if (!String.IsNullOrEmpty(trustedStorePath))
            {
                using (ICertificateStore store = CreateStore(trustedStorePath))
                {
                    X509CertificateCollection certificates = await store.Enumerate();

                    foreach (X509Certificate2 certificate in certificates)
                    {
                        List <X509CRL> crls = new List <X509CRL>();

                        if (store.SupportsCRLs)
                        {
                            foreach (X509CRL crl in store.EnumerateCRLs(certificate))
                            {
                                crls.Add(crl);
                            }
                        }

                        AddCertificate(certificate, Status.Trusted, crls);
                    }
                }
            }

            string path1 = Utils.GetAbsoluteDirectoryPath(trustedStorePath, true, false, false);
            string path2 = Utils.GetAbsoluteDirectoryPath(issuerStorePath, true, false, false);

            if (String.Compare(path1, path2, StringComparison.OrdinalIgnoreCase) != 0)
            {
                if (!String.IsNullOrEmpty(issuerStorePath))
                {
                    using (ICertificateStore store = CreateStore(issuerStorePath))
                    {
                        X509Certificate2Collection certificates = await store.Enumerate();

                        foreach (X509Certificate2 certificate in certificates)
                        {
                            List <X509CRL> crls = new List <X509CRL>();

                            if (store.SupportsCRLs)
                            {
                                foreach (X509CRL crl in store.EnumerateCRLs(certificate))
                                {
                                    crls.Add(crl);
                                }
                            }

                            AddCertificate(certificate, Status.Issuer, crls);
                        }
                    }
                }
            }

            if (!String.IsNullOrEmpty(rejectedStorePath))
            {
                using (ICertificateStore store = CreateStore(rejectedStorePath))
                {
                    X509Certificate2Collection certificates = await store.Enumerate();

                    foreach (X509Certificate2 certificate in certificates)
                    {
                        AddCertificate(certificate, Status.Rejected, null);
                    }
                }
            }

            m_dataset.AcceptChanges();
            NoDataWarningLabel.Visible = CertificatesTable.Rows.Count == 0;
        }
Пример #7
0
        public void SerializeDataSet2()
        {
            DataSet quota = new DataSet("Quota");

            // Dimension
            DataTable dt = new DataTable("Dimension");
            quota.Tables.Add(dt);

            dt.Columns.Add("Number", typeof(int));
            dt.Columns["Number"].AllowDBNull = false;
            dt.Columns["Number"].ColumnMapping = MappingType.Attribute;

            dt.Columns.Add("Title", typeof(string));
            dt.Columns["Title"].AllowDBNull = false;
            dt.Columns["Title"].ColumnMapping =
            MappingType.Attribute;

            dt.Rows.Add(new object[] { 0, "Hospitals" });
            dt.Rows.Add(new object[] { 1, "Doctors" });

            dt.Constraints.Add("PK_Dimension", dt.Columns["Number"], true);

            quota.AcceptChanges();

            XmlSerializer ser = new XmlSerializer(quota.GetType());

            StringWriter sw = new StringWriter();
            ser.Serialize(sw, quota);

            DataSet ds = (DataSet)ser.Deserialize(new StringReader(sw.ToString()));
        }
Пример #8
0
        public void WriteXmlModeSchema()
        {
            // This is the MS output of WriteXmlSchema().

            string xml = @"<Example>
  <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
" +
@"    <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:UseCurrentLocale=""true"">"
              + @"
      <xs:complexType>
        <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
          <xs:element name=""Dimension"">
            <xs:complexType>
              <xs:sequence>
                <xs:element name=""Number"" type=""xs:int"" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name=""Element"">
            <xs:complexType>
              <xs:sequence>
                <xs:element name=""Dimension"" type=""xs:int"" />
                <xs:element name=""Number"" type=""xs:int"" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name=""PK_Dimension"" msdata:PrimaryKey=""true"">
        <xs:selector xpath="".//Dimension"" />
        <xs:field xpath=""Number"" />
      </xs:unique>
      <xs:unique name=""PK_Element"" msdata:PrimaryKey=""true"">
        <xs:selector xpath="".//Element"" />
        <xs:field xpath=""Dimension"" />
        <xs:field xpath=""Number"" />
      </xs:unique>
      <xs:keyref name=""FK_Element_To_Dimension"" refer=""PK_Dimension"">
        <xs:selector xpath="".//Element"" />
        <xs:field xpath=""Dimension"" />
      </xs:keyref>
    </xs:element>
  </xs:schema>
  <Dimension>
    <Number>0</Number>
  </Dimension>
  <Dimension>
    <Number>1</Number>
  </Dimension>
  <Element>
    <Dimension>0</Dimension>
    <Number>0</Number>
  </Element>
  <Element>
    <Dimension>0</Dimension>
    <Number>1</Number>
  </Element>
  <Element>
    <Dimension>0</Dimension>
    <Number>2</Number>
  </Element>
  <Element>
    <Dimension>0</Dimension>
    <Number>3</Number>
  </Element>
  <Element>
    <Dimension>1</Dimension>
    <Number>0</Number>
  </Element>
  <Element>
    <Dimension>1</Dimension>
    <Number>1</Number>
  </Element>
</Example>";
            DataSet ds = new DataSet("Example");

            // Dimension DataTable
            DataTable dt1 = new DataTable("Dimension");
            ds.Tables.Add(dt1);

            dt1.Columns.Add(new DataColumn("Number", typeof(int)));
            dt1.Columns["Number"].AllowDBNull = false;

            dt1.Constraints.Add("PK_Dimension", dt1.Columns["Number"], true);

            // Element DataTable
            DataTable dt2 = new DataTable("Element");
            ds.Tables.Add(dt2);

            dt2.Columns.Add(new DataColumn("Dimension", typeof(int)));
            dt2.Columns["Dimension"].AllowDBNull = false;

            dt2.Columns.Add(new DataColumn("Number", typeof(int)));
            dt2.Columns["Number"].AllowDBNull = false;

            dt2.Constraints.Add("PK_Element", new DataColumn[] {
                dt2.Columns ["Dimension"],
                dt2.Columns ["Number"] },
                true);

            // Add DataRelations
            ds.Relations.Add("FK_Element_To_Dimension",
                dt1.Columns["Number"],
                dt2.Columns["Dimension"], true);

            // Add 2 Dimensions
            for (int i = 0; i < 2; i++)
            {
                DataRow newRow = dt1.NewRow();
                newRow["Number"] = i;
                dt1.Rows.Add(newRow);
            }

            // Dimension 0 => 4 Elements
            for (int i = 0; i < 4; i++)
            {
                DataRow newRow = dt2.NewRow();
                newRow["Dimension"] = 0;
                newRow["Number"] = i;
                dt2.Rows.Add(newRow);
            }

            // Dimension 1 => 2 Elements
            for (int i = 0; i < 2; i++)
            {
                DataRow newRow = dt2.NewRow();
                newRow["Dimension"] = 1;
                newRow["Number"] = i;
                dt2.Rows.Add(newRow);
            }

            ds.AcceptChanges();

            StringWriter sw = new StringWriter();
            ds.WriteXml(sw, XmlWriteMode.WriteSchema);

            string result = sw.ToString();

            Assert.Equal(result.Replace("\r\n", "\n"), xml.Replace("\r\n", "\n"));
        }
Пример #9
0
        public void WriteXmlSchema3()
        {
            string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
<xs:schema id=""ExampleDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
  <xs:element name=""ExampleDataSet"" msdata:IsDataSet=""true"" ";
            xmlschema = xmlschema + "msdata:UseCurrentLocale=\"true\"";
            xmlschema = xmlschema + @">
    <xs:complexType>
      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
        <xs:element name=""ExampleDataTable"">
          <xs:complexType>
            <xs:attribute name=""PrimaryKeyColumn"" type=""xs:int"" use=""required"" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name=""PK_ExampleDataTable"" msdata:PrimaryKey=""true"">
      <xs:selector xpath="".//ExampleDataTable"" />
      <xs:field xpath=""@PrimaryKeyColumn"" />
    </xs:unique>
  </xs:element>
</xs:schema>";
            DataSet ds = new DataSet("ExampleDataSet");

            ds.Tables.Add(new DataTable("ExampleDataTable"));
            ds.Tables["ExampleDataTable"].Columns.Add(
                new DataColumn("PrimaryKeyColumn", typeof(int), "", MappingType.Attribute));
            ds.Tables["ExampleDataTable"].Columns["PrimaryKeyColumn"].AllowDBNull = false;

            ds.Tables["ExampleDataTable"].Constraints.Add(
                "PK_ExampleDataTable",
                ds.Tables["ExampleDataTable"].Columns["PrimaryKeyColumn"],
                true);

            ds.AcceptChanges();
            StringWriter sw = new StringWriter();
            ds.WriteXmlSchema(sw);

            string result = sw.ToString();

            Assert.Equal(result.Replace("\r\n", "\n"), xmlschema.Replace("\r\n", "\n"));
        }
Пример #10
0
        /// <summary>
        /// Writes all Changes in a Dataset to the Table
        /// </summary>
        /// <param name="tableName">Name of the Table to update</param>
        /// <param name="dataSet">DataSet set contains the Changes that sould be written</param>
        /// <exception cref="DatabaseException"></exception>

        public void SaveDataSet(string tableName, DataSet dataSet)
        {
            if (dataSet.HasChanges() == false)
            {
                return;
            }

            switch (connType)
            {
            case ConnectionType.DATABASE_XML:
            {
                try
                {
                    dataSet.WriteXml(connString + tableName + ".xml");
                    dataSet.AcceptChanges();
                    dataSet.WriteXmlSchema(connString + tableName + ".xsd");
                }
                catch (Exception e)
                {
                    throw new DatabaseException("Could not save Databases in XML-Files!", e);
                }

                break;
            }

            case ConnectionType.DATABASE_MYSQL:
            {
                try
                {
                    MySqlConnection     conn    = new MySqlConnection(connString);
                    MySqlDataAdapter    adapter = new MySqlDataAdapter("SELECT * from `" + tableName + "`", conn);
                    MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter);

                    conn.Open();
                    adapter.DeleteCommand = builder.GetDeleteCommand();
                    adapter.UpdateCommand = builder.GetUpdateCommand();
                    adapter.InsertCommand = builder.GetInsertCommand();

                    DataSet changes = dataSet.GetChanges();

                    adapter.Update(changes, tableName);
                    dataSet.AcceptChanges();
                }
                catch (Exception ex)
                {
                    throw new DatabaseException("Could not save the Database-Table", ex);
                }

                break;
            }

/*				case ConnectionType.DATABASE_MSSQL:
 *                              {
 *                                      try
 *                                      {
 *                                              SqlConnection conn = new SqlConnection(connString);
 *                                              SqlDataAdapter adapter = new SqlDataAdapter("SELECT * from " + tableName, conn);
 *                                              SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
 *
 *                                              adapter.DeleteCommand = builder.GetDeleteCommand();
 *                                              adapter.UpdateCommand = builder.GetUpdateCommand();
 *                                              adapter.InsertCommand = builder.GetInsertCommand();
 *
 *                                              DataSet changes = dataSet.GetChanges();
 *
 *                                              adapter.Update(changes, tableName);
 *                                              dataSet.AcceptChanges();
 *                                      }
 *                                      catch (Exception ex)
 *                                      {
 *                                              throw new DatabaseException("Could not save the Database-Table", ex);
 *                                      }
 *
 *                                      break;
 *                              }
 *                              case ConnectionType.DATABASE_ODBC:
 *                              {
 *                                      try
 *                                      {
 *                                              OdbcConnection conn = new OdbcConnection(connString);
 *                                              OdbcDataAdapter adapter = new OdbcDataAdapter("SELECT * from " + tableName, conn);
 *                                              OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
 *
 *                                              adapter.DeleteCommand = builder.GetDeleteCommand();
 *                                              adapter.UpdateCommand = builder.GetUpdateCommand();
 *                                              adapter.InsertCommand = builder.GetInsertCommand();
 *
 *                                              DataSet changes = dataSet.GetChanges();
 *
 *                                              adapter.Update(changes, tableName);
 *                                              dataSet.AcceptChanges();
 *                                      }
 *                                      catch (Exception ex)
 *                                      {
 *                                              throw new DatabaseException("Could not save the Database-Table", ex);
 *                                      }
 *
 *                                      break;
 *                              }
 *                              case ConnectionType.DATABASE_OLEDB:
 *                              {
 *                                      try
 *                                      {
 *                                              OleDbConnection conn = new OleDbConnection(connString);
 *                                              OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * from " + tableName, conn);
 *                                              OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
 *
 *                                              adapter.DeleteCommand = builder.GetDeleteCommand();
 *                                              adapter.UpdateCommand = builder.GetUpdateCommand();
 *                                              adapter.InsertCommand = builder.GetInsertCommand();
 *
 *                                              DataSet changes = dataSet.GetChanges();
 *
 *                                              adapter.Update(changes, tableName);
 *                                              dataSet.AcceptChanges();
 *                                      }
 *                                      catch (Exception ex)
 *                                      {
 *                                              throw new DatabaseException("Could not save the Database-Table", ex);
 *                                      }
 *                                      break;
 *                              }*/
            }
        }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        DataSet theDataSet = new DataSet();

        theDataSet.ReadXml(Server.MapPath("AllTeams/dbusers.cs"));
        DataTable dt = theDataSet.Tables[0];

        if (Request.QueryString["ucode"] != null)
        {
            DataRow[] drow = dt.Select("UCode = '" + txtUserCode.Text + "'");

            if (txtPassword.Text != null && txtPassword.Text != "")
            {
                drow[0]["Password"] = txtPassword.Text;
            }
            drow[0]["Name"]  = txtName.Text;
            drow[0]["Email"] = txtEmail.Text;
            //drow[0]["TCode"] = SessionManager.LoggedInTCode;
            drow[0]["IsActive"] = chkActive.Checked;
            drow[0]["Remarks"]  = txtRemarks.Text;


            //dt.Rows.Add(drow);

            dt.AcceptChanges();
            theDataSet.AcceptChanges();

            String xmldata = CommonUtility.DSToXml(theDataSet);
            File.WriteAllText(Server.MapPath("AllTeams/dbusers.cs"), xmldata);

            Response.Redirect("UserDetails.aspx?ucode=" + txtUserCode.Text);
        }
        else
        {
            DataRow[] drow = dt.Select("UCode = '" + txtUserCode.Text + "'");
            if (drow.Length > 0)
            {
                ScriptManager.RegisterClientScriptBlock(btnSave, btnSave.GetType(), "btnSave", "alert('User Code not available. Please use another user code.')", true);
                return;
            }

            DataRow row;
            row = dt.NewRow();

            row["UCode"]    = txtUserCode.Text;
            row["Password"] = txtPassword.Text;
            row["Name"]     = txtName.Text;
            row["Email"]    = txtEmail.Text;
            row["TCode"]    = SessionManager.LoggedInTCode;
            row["IsActive"] = chkActive.Checked;
            row["Remarks"]  = txtRemarks.Text;


            dt.Rows.Add(row);

            dt.AcceptChanges();
            theDataSet.AcceptChanges();

            String xmldata = CommonUtility.DSToXml(theDataSet);
            File.WriteAllText(Server.MapPath("AllTeams/dbusers.cs"), xmldata);

            String userFile = Server.MapPath("AllTeams/" + SessionManager.LoggedInTCode + "/" + txtUserCode.Text);
            System.IO.Directory.CreateDirectory(userFile);

            Response.Redirect("UserDetails.aspx?ucode=" + txtUserCode.Text);
        }
    }
Пример #12
0
        public static string DataSetToXMLStr(DataSet dsSrc)
        {
            DataSet ds = dsSrc.Copy();

            foreach (DataTable t in ds.Tables)
            {
                //add IUD
                if (!t.Columns.Contains("IUD"))
                {
                    t.Columns.Add("IUD", System.Type.GetType("System.String"));
                }

                //remove not null
                foreach (DataColumn c in t.Columns)
                {
                    if (c.AllowDBNull == false)
                    {
                        c.AllowDBNull = true;
                    }
                }
            }
            foreach (DataTable t in ds.Tables)
            {
                foreach (DataRow r in t.Rows)
                {
                    if (r.RowState == DataRowState.Unchanged)
                    {
                        continue;
                    }
                    switch (r.RowState)
                    {
                    case DataRowState.Added:
                        r["IUD"] = "I";
                        break;

                    case DataRowState.Modified:
                        r["IUD"] = "U";
                        break;

                    case DataRowState.Deleted:
                        r.RejectChanges();
                        r["IUD"] = "D";
                        break;

                    default:
                        break;
                    }
                }
            }
            //update parent records
            foreach (DataTable t in ds.Tables)
            {
                if (t.ParentRelations.Count == 0)
                {
                    continue;
                }
                foreach (DataRelation rel in t.ParentRelations)
                {
                    foreach (DataColumn c in rel.ChildColumns)
                    {
                        if (!c.ExtendedProperties.ContainsKey("KEY"))
                        {
                            c.ExtendedProperties.Add("KEY", "Y");
                        }
                    }
                    foreach (DataColumn c in rel.ParentColumns)
                    {
                        if (!c.ExtendedProperties.ContainsKey("KEY"))
                        {
                            c.ExtendedProperties.Add("KEY", "Y");
                        }
                    }
                }
                foreach (DataRow r in t.Rows)
                {
                    if (r.RowState == DataRowState.Unchanged)
                    {
                        continue;
                    }
                    foreach (DataRelation rel in t.ParentRelations)
                    {
                        DataRow pr = r.GetParentRow(rel);
                        if (pr.RowState == DataRowState.Unchanged && pr["IUD"] == DBNull.Value)
                        {
                            pr["IUD"] = "N";
                        }
                    }
                }
            }
            foreach (DataTable t in ds.Tables)
            {
                foreach (DataRow r in t.Rows)
                {
                    if (r.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }
                    if (r["IUD"] == DBNull.Value)
                    {
                        r.Delete();
                        continue;
                    }
                    if ((String)r["IUD"] == "D" || (String)r["IUD"] == "N")
                    {
                        foreach (DataColumn c in t.Columns)
                        {
                            if (c.ColumnName == "IUD")
                            {
                                continue;
                            }
                            if (c.ReadOnly)
                            {
                                c.ReadOnly = false;
                            }
                            if (!c.ExtendedProperties.ContainsKey("KEY"))
                            {
                                r[c] = DBNull.Value;
                            }
                        }
                        continue;
                    }
                }
            }
            //clear all readonly
            foreach (DataTable t in ds.Tables)
            {
                foreach (DataColumn c in t.Columns)
                {
                    if (c.ReadOnly == false)
                    {
                        continue;
                    }
                    if (c.ExtendedProperties.ContainsKey("KEY"))
                    {
                        continue;
                    }
                    c.ReadOnly = false;
                    foreach (DataRow r in t.Rows)
                    {
                        if (r.RowState != DataRowState.Deleted)
                        {
                            r[c] = DBNull.Value;
                        }
                    }
                }
            }
            ds.AcceptChanges();
            return(ds.GetXml());
        }
Пример #13
0
        private DataSet ReadDataSet() {
            var dataset = new DataSet();

            Dictionary<int, XlsxDimension> demensionDict = DetectDemension();

            for (int sheetIndex = 0; sheetIndex < m_workbook.Sheets.Count; sheetIndex++) {
                XlsxWorksheet sheet = m_workbook.Sheets[sheetIndex];
                var table = new DataTable(m_workbook.Sheets[sheetIndex].Name);

                ReadSheetGlobals(sheet);
                sheet.Dimension = demensionDict[sheetIndex];

                if (sheet.Dimension == null) {
                    continue;
                }

                m_depth = 0;
                m_emptyRowCount = 0;

                // Reada Columns
                if (!m_isFirstRowAsColumnNames) {
                    // No Sheet Columns
                    for (int i = 0; i < sheet.ColumnsCount; i++) {
                        table.Columns.Add(i.ToString(CultureInfo.InvariantCulture), typeof(Object));
                    }
                } else if (ReadSheetRow(sheet)) {
                    // Read Sheet Columns
                    Debug.Assert(m_cellsValues!=null);
                    for (int index = 0; index < m_cellsValues.Length; index++) {
                        if (m_cellsValues[index] != null && m_cellsValues[index].ToString().Length > 0) {
                            table.AddColumnHandleDuplicate(m_cellsValues[index].ToString());
                        } else {
                            table.AddColumnHandleDuplicate(string.Concat(COLUMN, index));
                        }
                    }
                } else {
                    continue;
                }

                // Read Sheet Rows
                table.BeginLoadData();
                while (ReadSheetRow(sheet)) {
                    table.Rows.Add(m_cellsValues);
                }
                if (table.Rows.Count > 0) {
                    dataset.Tables.Add(table);
                }

                // Read HyperLinks
                ReadHyperLinks(sheet, table);

                table.EndLoadData();
            }
            dataset.AcceptChanges();
            dataset.FixDataTypes();
            return dataset;
        }
Пример #14
0
        public void RowStateFilter_2()
        {
            DataSet dataset = new DataSet("new");
            DataTable dt = new DataTable("table1");
            dataset.Tables.Add(dt);
            dt.Columns.Add("col1");
            dt.Columns.Add("col2");
            dt.Rows.Add(new object[] { 1, 1 });
            dt.Rows.Add(new object[] { 1, 2 });
            dt.Rows.Add(new object[] { 1, 3 });
            dataset.AcceptChanges();

            DataView dataView = new DataView(dataset.Tables[0]);

            // 'new'  table in this sample contains 6 records
            dataView.AllowEdit = true;
            dataView.AllowDelete = true;
            string v;

            // Editing the row
            dataView[0]["col1"] = -1;
            dataView.RowStateFilter = DataViewRowState.ModifiedOriginal;
            v = dataView[0][0].ToString();
            Assert.Equal(1, dataView.Count);
            Assert.Equal("1", v);

            // Deleting the row
            dataView.Delete(0);
            dataView.RowStateFilter = DataViewRowState.Deleted;

            v = dataView[0][0].ToString();
            Assert.Equal(1, dataView.Count);
            Assert.Equal("1", v);
        }
Пример #15
0
        // https://bugzilla.novell.com/show_bug.cgi?id=650402
        public void ForeignKey_650402()
        {
            DataSet data = new DataSet();
            DataTable parent = new DataTable("parent");
            DataColumn pk = parent.Columns.Add("PK");
            DataTable child = new DataTable("child");
            DataColumn fk = child.Columns.Add("FK");

            data.Tables.Add(parent);
            data.Tables.Add(child);
            data.Relations.Add(pk, fk);

            parent.Rows.Add("value");
            child.Rows.Add("value");
            data.AcceptChanges();
            child.Rows[0].Delete();
            parent.Rows[0][0] = "value2";

            data.EnforceConstraints = false;
            data.EnforceConstraints = true;
        }
Пример #16
0
        public ApplicationRecordDataType ShowDialog(IWin32Window owner, IList <ApplicationRecordDataType> records, NodeId defaultRecord)
        {
            ApplicationsTable.Rows.Clear();

            DataRow selectedRow = null;

            if (records != null)
            {
                foreach (var record in records)
                {
                    DataRow row = ApplicationsTable.NewRow();

                    if (selectedRow == null && defaultRecord != null)
                    {
                        if (defaultRecord == record.ApplicationId)
                        {
                            selectedRow = row;
                        }
                    }

                    row[0] = record.ApplicationId;
                    row[1] = (record.ApplicationNames != null && record.ApplicationNames.Count > 0 && !LocalizedText.IsNullOrEmpty(record.ApplicationNames[0]))?record.ApplicationNames[0].Text:String.Empty;
                    row[2] = record.ApplicationType;
                    row[3] = record.ProductUri;

                    StringBuilder buffer = new StringBuilder();

                    if (record.DiscoveryUrls != null)
                    {
                        foreach (var url in record.DiscoveryUrls)
                        {
                            if (buffer.Length > 0)
                            {
                                buffer.Append(',');
                            }

                            buffer.Append(url);
                        }
                    }

                    row[4] = buffer.ToString();

                    buffer = new StringBuilder();

                    if (record.ServerCapabilities != null)
                    {
                        foreach (var id in record.ServerCapabilities)
                        {
                            if (buffer.Length > 0)
                            {
                                buffer.Append(',');
                            }

                            buffer.Append(id);
                        }
                    }

                    row[5] = buffer.ToString();
                    row[6] = record;

                    ApplicationsTable.Rows.Add(row);
                }

                m_dataset.AcceptChanges();
            }

            if (selectedRow != null)
            {
                foreach (DataGridViewRow row in ApplicationRecordDataGridView.Rows)
                {
                    DataRowView source = row.DataBoundItem as DataRowView;

                    if (Object.ReferenceEquals(source.Row, selectedRow))
                    {
                        row.Selected = true;
                        break;
                    }
                }
            }

            if (base.ShowDialog(owner) != DialogResult.OK)
            {
                return(null);
            }

            if (ApplicationRecordDataGridView.SelectedRows.Count > 0)
            {
                DataRowView source = ApplicationRecordDataGridView.SelectedRows[0].DataBoundItem as DataRowView;
                return((ApplicationRecordDataType)source.Row[6]);
            }

            return(null);
        }
Пример #17
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (selectedRowIndex < 0)
            {
                string str  = WorkingContext.LangManager.GetString("frmRegOverTime_Edit_messa");
                string str1 = WorkingContext.LangManager.GetString("frmListRegRest_Delete_Title");
                //MessageBox.Show("Bạn chưa chọn nhân viên nào!", "Xóa đăng ký nghỉ của nhân viên", MessageBoxButtons.OK,  MessageBoxIcon.Error);
                MessageBox.Show(str, str1, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            DialogResult dr = MessageBox.Show("Bạn có thực sự muốn xóa? ", "Xóa đăng ký nghỉ của nhân viên", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dr == DialogResult.Yes)
            {
                SqlConnection  conn     = WorkingContext.GetConnection();
                SqlTransaction trans    = null;
                int            ret      = 0;
                bool           bUpdate  = false;
                bool           bUpdate1 = false;
                int            iDayId   = -1;

                try
                {
                    conn.Open();
                    trans  = conn.BeginTransaction();
                    iDayId = Convert.ToInt32(dsRegRestEmployee.Tables[0].Rows[selectedRowIndex]["DayID"]);
                    int      iEmployeeID = Convert.ToInt32(dsRegRestEmployee.Tables[0].Rows[selectedRowIndex]["EmployeeID"]);
                    DateTime dtStartRest = Convert.ToDateTime(dsRegRestEmployee.Tables[0].Rows[selectedRowIndex]["StartRest"]);
                    DateTime dtEndRest   = Convert.ToDateTime(dsRegRestEmployee.Tables[0].Rows[selectedRowIndex]["EndRest"]);
                    dsRegRestEmployee.Tables[0].Rows[selectedRowIndex].Delete();
                    //Xóa thông tin đăng ký nghỉ của nhân viên
                    ret = regRestEmployee.DeleteRegRestEmployee(dsRegRestEmployee, trans);
                    //Cập nhật lại số ngày nghỉ phép của nhân viên nếu là xóa đăng ký nghỉ phép
                    if (ret == 1 && (iDayId == 200 || iDayId == 219))
                    {
                        if (dtStartRest.Month == dtEndRest.Month)
                        {
                            bUpdate = regRestEmployee.UpdateRestSheetEmployee(iEmployeeID, dtStartRest, dtEndRest, dtStartRest, iDayId, trans);
                        }
                        else
                        {
                            bUpdate = regRestEmployee.UpdateRestSheetEmployee(iEmployeeID, dtStartRest, dtEndRest, dtStartRest, iDayId, trans);
                            bUpdate = regRestEmployee.UpdateRestSheetEmployee(iEmployeeID, dtStartRest, dtEndRest, dtEndRest, iDayId, trans);
                        }
                    }
                    dsRegRestEmployee.AcceptChanges();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    if (trans != null)
                    {
                        trans.Rollback();
                    }
                    trans.Dispose();
                    return;
                }

                bool bResultPri = false;
                if (iDayId != 200 && iDayId != 219)
                {
                    if (ret == 1)
                    {
                        bResultPri = true;
                    }
                }
                else
                {
                    if (ret == 1 && bUpdate)
                    {
                        bResultPri = true;
                    }
                }
                if (bResultPri)
                {
                    trans.Commit();
                    trans.Dispose();
                }
                else
                {
                    trans.Rollback();
                    trans.Dispose();
                }

                PopulateRestEmployee();
            }
            selectedRowIndex = -1;
            tableModel1.Selections.Clear();
        }
Пример #18
0
        private void _My_Documento_PrintPageDetallado(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            PaperSize _My_Papel      = new PaperSize("Carta_Mitad", 850, 510);
            string    _Str_Impresora = this._My_PrintDialogo.PrinterSettings.PrinterName;
            string    _Str_Sql       = "";
            float     _Fl_Linea      = 0;
            float     _Fl_Y          = 0;

            Graphics _My_Grafico = e.Graphics;

            e.PageSettings.PrinterSettings.PrinterName = _Str_Impresora;
            e.PageSettings.PaperSize = _My_Papel;

            _My_Grafico.PageUnit = GraphicsUnit.Millimeter;

            Font _My_Fuente = new Font("Verdana", 7, FontStyle.Regular);

            e.PageSettings.Margins.Top    = 0;
            e.PageSettings.Margins.Left   = 0;
            e.PageSettings.Margins.Right  = 0;
            e.PageSettings.Margins.Bottom = 30;


            _MyAreaHeight = (e.PageSettings.PaperSize.Height - (e.PageSettings.Margins.Top + e.PageSettings.Margins.Bottom));

            StringFormat _My_Sf   = StringFormat.GenericTypographic;
            SizeF        _My_Size = _My_Grafico.MeasureString("X", _My_Fuente, 1, _My_Sf);

            _Fl_Y = 30;
            RectangleF _My_RecCabecera = new RectangleF(65, _Fl_Y, 80, _My_Size.Height);
            RectangleF _My_RecFecha    = new RectangleF(160, _Fl_Y, 50, _My_Size.Height);

            _Fl_Y = _Fl_Y + 10;
            RectangleF _My_RecProveedorName = new RectangleF(10, _Fl_Y, 180, _My_Size.Height);

            _Fl_Y = _Fl_Y + _My_Size.Height + 2;
            RectangleF _My_RecProveedorDirFis = new RectangleF(10, _Fl_Y, 180, _My_Size.Height);

            _Fl_Y = _Fl_Y + _My_Size.Height + 2;
            RectangleF _My_RecRif = new RectangleF(10, _Fl_Y, 150, _My_Size.Height);

            _My_Sf.Alignment = StringAlignment.Center;
            _My_Grafico.DrawString(this._Field_Titulo, _My_Fuente, Brushes.Black, _My_RecCabecera, _My_Sf);
            _My_Grafico.DrawString("Fecha: " + DateTime.Now.Date.ToShortDateString(), _My_Fuente, Brushes.Black, _My_RecFecha, _My_Sf);
            _My_Sf.Alignment = StringAlignment.Near;
            _My_Grafico.DrawString("Cliente: " + this._Field_ProveedorNameFiscal, _My_Fuente, Brushes.Black, _My_RecProveedorName, _My_Sf);
            string _Str_DirecFiscal = this._Field_DirecFiscal;

            if (_Str_DirecFiscal.Length > 100)
            {
                _Str_DirecFiscal = _Str_DirecFiscal.Substring(0, 100);
            }
            _My_Grafico.DrawString("Dirección fiscal: " + _Str_DirecFiscal, _My_Fuente, Brushes.Black, _My_RecProveedorDirFis, _My_Sf);
            _My_Grafico.DrawString("Rif: " + this._Field_Rif, _My_Fuente, Brushes.Black, _My_RecRif, _My_Sf);
            _Fl_Y = _Fl_Y + _My_Size.Height + 2;
            _My_Grafico.DrawString("Concepto: " + this._Field_Concepto, _My_Fuente, Brushes.Black, new RectangleF(10, _Fl_Y, 180, _My_Size.Height), _My_Sf);
            _Fl_Y = _Fl_Y + 5;
            _My_Grafico.DrawLine(new Pen(Color.Black, 0.2f), 5, _Fl_Y, 210, _Fl_Y);
            _Fl_Y = _Fl_Y + 2;
            _My_Grafico.DrawLine(new Pen(Color.Black, 0.2f), 5, _Fl_Y, 210, _Fl_Y);
            _Fl_Y            = _Fl_Y + 2;
            _My_Sf.Alignment = StringAlignment.Near;
            _My_Grafico.DrawString("Código", _My_Fuente, Brushes.Black, new RectangleF(5, _Fl_Y, 20, _My_Size.Height), _My_Sf);
            _My_Grafico.DrawString("Descripción", _My_Fuente, Brushes.Black, new RectangleF(26, _Fl_Y, 55, _My_Size.Height), _My_Sf);
            _My_Sf.Alignment = StringAlignment.Far;
            _My_Grafico.DrawString("Cajas", _My_Fuente, Brushes.Black, new RectangleF(82, _Fl_Y, 12, _My_Size.Height), _My_Sf);
            _My_Grafico.DrawString("Unidades", _My_Fuente, Brushes.Black, new RectangleF(95, _Fl_Y, 12, _My_Size.Height), _My_Sf);
            _My_Grafico.DrawString("Base grabada", _My_Fuente, Brushes.Black, new RectangleF(108, _Fl_Y, 16, _My_Size.Height), _My_Sf);
            _My_Grafico.DrawString("Base exenta", _My_Fuente, Brushes.Black, new RectangleF(125, _Fl_Y, 16, _My_Size.Height), _My_Sf);
            _My_Sf.Alignment = StringAlignment.Far;
            _My_Grafico.DrawString("Invendible", _My_Fuente, Brushes.Black, new RectangleF(142, _Fl_Y, 15, _My_Size.Height), _My_Sf);
            _My_Grafico.DrawString("Impuesto", _My_Fuente, Brushes.Black, new RectangleF(158, _Fl_Y, 18, _My_Size.Height), _My_Sf);
            _My_Grafico.DrawString("%Alic.", _My_Fuente, Brushes.Black, new RectangleF(177, _Fl_Y, 10, _My_Size.Height), _My_Sf);
            _My_Sf.Alignment = StringAlignment.Far;
            _My_Grafico.DrawString("Monto Total", _My_Fuente, Brushes.Black, new RectangleF(188, _Fl_Y, 19, _My_Size.Height), _My_Sf);
            _My_Sf.Alignment = StringAlignment.Near;
            _Fl_Y            = _Fl_Y + 4;
            _My_Grafico.DrawLine(new Pen(Color.Black, 0.2f), 5, _Fl_Y, 210, _Fl_Y);
            _Fl_Y = _Fl_Y + 2;
            _My_Grafico.DrawLine(new Pen(Color.Black, 0.2f), 5, _Fl_Y, 210, _Fl_Y);
            _Fl_Y            = _Fl_Y + 2;
            _My_Sf.Alignment = StringAlignment.Near;
            DataSet _Ds_A;
            float   _Fl_LongConcepto     = 64;
            string  _Str_DescripProducto = "";
            Int32   _Int_NumLinea        = 1;
            float   _Fl_Y_Temp           = 0;

            for (int _I = 0; _I < _G_Ds_Detalle.Tables[0].Rows.Count; _I++)
            {
                if ((_Fl_Y * 4.0f) < _MyAreaHeight)
                {
                    DataRow _Drow = _G_Ds_Detalle.Tables[0].Rows[_I];
                    _Fl_Y_Temp       = 0; _Fl_Linea = 1; _Int_NumLinea = 0; _Str_DescripProducto = "";
                    _My_Sf.Alignment = StringAlignment.Near;
                    _My_Grafico.DrawString(_Drow["cproducto"].ToString().Trim(), _My_Fuente, Brushes.Black, new RectangleF(5, _Fl_Y, 20, _My_Size.Height), _My_Sf);
                    _Str_Sql = "SELECT RTRIM(produc_descrip) + ' ' + RTRIM(produc_descrip_2) FROM VST_PRODUCTOS WHERE cproducto='" + _Drow["cproducto"].ToString().Trim() + "'";
                    _Ds_A    = Program._MyClsCnn._mtd_conexion._Mtd_RetornarDataset(_Str_Sql);
                    if (_Ds_A.Tables[0].Rows.Count > 0)
                    {
                        _Str_DescripProducto = _Ds_A.Tables[0].Rows[0][0].ToString();
                        if (_My_Grafico.MeasureString(_Str_DescripProducto, _My_Fuente).Width > _Fl_LongConcepto)
                        {
                            _Fl_Linea = _My_Grafico.MeasureString(_Str_DescripProducto, _My_Fuente).Width / _Fl_LongConcepto;
                        }
                        else
                        {
                            _Fl_Linea = 1;
                        }
                        if (Math.Floor(_Fl_Linea) < _Fl_Linea)
                        {
                            _Int_NumLinea = Convert.ToInt32(Math.Floor(_Fl_Linea)) + 2;
                        }
                        else
                        {
                            _Int_NumLinea = Convert.ToInt32(Math.Floor(_Fl_Linea)) + 1;
                        }
                        _My_Sf.Alignment = StringAlignment.Near;
                        _My_Grafico.DrawString(_Str_DescripProducto, _My_Fuente, Brushes.Black, new RectangleF(26, _Fl_Y, 55, (_My_Size.Height * _Int_NumLinea)), _My_Sf);
                        _Fl_Y_Temp = (_My_Size.Height * (_Int_NumLinea - 1));
                    }
                    else
                    {
                        _Fl_Y_Temp = _My_Size.Height;
                    }
                    _My_Sf.Alignment = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["ccajas"]).ToString("#,##0"), _My_Fuente, Brushes.Black, new RectangleF(82, _Fl_Y, 13, _My_Size.Height), _My_Sf);
                    _G_Dbl_Cajas     = _G_Dbl_Cajas + Convert.ToDouble(_Drow["ccajas"]);
                    _My_Sf.Alignment = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["cunidades"]).ToString("#,##0"), _My_Fuente, Brushes.Black, new RectangleF(95, _Fl_Y, 13, _My_Size.Height), _My_Sf);
                    _G_Dbl_Unidades  = _G_Dbl_Unidades + Convert.ToDouble(_Drow["cunidades"]);
                    _My_Sf.Alignment = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["cbasegrabada"]).ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(108, _Fl_Y, 16, _My_Size.Height), _My_Sf);
                    _G_Dbl_BaseGrabada = _G_Dbl_BaseGrabada + Convert.ToDouble(_Drow["cbasegrabada"]);
                    _My_Sf.Alignment   = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["cbasexcenta"]).ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(125, _Fl_Y, 16, _My_Size.Height), _My_Sf);
                    _G_Dbl_BaseExcenta = _G_Dbl_BaseExcenta + Convert.ToDouble(_Drow["cbasexcenta"]);
                    _My_Sf.Alignment   = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["cmontoinvendi"]).ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(142, _Fl_Y, 15, _My_Size.Height), _My_Sf);
                    _G_Dbl_Invendible = _G_Dbl_Invendible + Convert.ToDouble(_Drow["cmontoinvendi"]);
                    _My_Sf.Alignment  = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["cimpuesto"]).ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(158, _Fl_Y, 18, _My_Size.Height), _My_Sf);
                    _G_Dbl_Impuesto  = _G_Dbl_Impuesto + Convert.ToDouble(_Drow["cimpuesto"]);
                    _My_Sf.Alignment = StringAlignment.Far;
                    _My_Grafico.DrawString(_Drow["calicuota"].ToString(), _My_Fuente, Brushes.Black, new RectangleF(177, _Fl_Y, 10, _My_Size.Height), _My_Sf);
                    _My_Sf.Alignment = StringAlignment.Far;
                    _My_Grafico.DrawString(Convert.ToDouble(_Drow["cmontototal"]).ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(188, _Fl_Y, 19, _My_Size.Height), _My_Sf);
                    _G_Dbl_MontoTotal = _G_Dbl_MontoTotal + Convert.ToDouble(_Drow["cmontototal"]);
                    _G_Ds_Detalle.Tables[0].Rows.Remove(_Drow);
                    _G_Ds_Detalle.AcceptChanges();
                    _I--;
                }

                _Fl_Y = _Fl_Y + _Fl_Y_Temp + 1;
                if ((_Fl_Y * 4.0f) > _MyAreaHeight)
                {
                    //_Fl_Y = 0;
                    //_My_Grafico.Dispose();
                    e.HasMorePages = true;
                    //goto _Goto_Inicio;
                }
            }
            //ESTABLESCO LOS TOTALES
            if ((_Fl_Y * 4.0f) < _MyAreaHeight)
            {
                _My_Grafico.DrawLine(new Pen(Color.Black, 0.2f), 82, _Fl_Y, 210, _Fl_Y);
                _Fl_Y++;
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_Cajas.ToString("#,##0"), _My_Fuente, Brushes.Black, new RectangleF(82, _Fl_Y, 13, _My_Size.Height), _My_Sf);
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_Unidades.ToString("#,##0"), _My_Fuente, Brushes.Black, new RectangleF(95, _Fl_Y, 13, _My_Size.Height), _My_Sf);
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_BaseGrabada.ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(108, _Fl_Y, 16, _My_Size.Height), _My_Sf);
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_BaseExcenta.ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(125, _Fl_Y, 16, _My_Size.Height), _My_Sf);
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_Invendible.ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(142, _Fl_Y, 15, _My_Size.Height), _My_Sf);
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_Impuesto.ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(158, _Fl_Y, 18, _My_Size.Height), _My_Sf);
                //_My_Sf.Alignment = StringAlignment.Far;
                //_My_Grafico.DrawString(_Drow["calicuota"].ToString(), _My_Fuente, Brushes.Black, new RectangleF(179, _Fl_Y, 10, _My_Size.Height), _My_Sf);
                _My_Sf.Alignment = StringAlignment.Far;
                _My_Grafico.DrawString(_G_Dbl_MontoTotal.ToString("#,##0.00"), _My_Fuente, Brushes.Black, new RectangleF(188, _Fl_Y, 19, _My_Size.Height), _My_Sf);
            }
        }
Пример #19
0
        public DataSet AsDataSet(bool convertOADateTime) {
            if (!m_isValid)
                return null;

            if (m_isClosed)
                return m_workbookData;

            ConvertOaDate=convertOADateTime;
            m_workbookData=new DataSet();


            for (int index=0; index<ResultsCount; index++) {
                DataTable table=readWholeWorkSheet(m_sheets[index]);

                if (null!=table)
                    m_workbookData.Tables.Add(table);
            }

            m_file.Dispose();
            m_isClosed=true;
            m_workbookData.AcceptChanges();
            m_workbookData.FixDataTypes();

            return m_workbookData;
        }
Пример #20
0
        public Form1()
        {
            InitializeComponent();


            NodeCollection nodes = new NodeCollection();

            //for (int i = 0; i < 100000; i++)
            //{
            nodes.Add(new NodeItem("PC", 0));
            nodes.Add(new NodeItem("TGT", 1));
            nodes.Add(new NodeItem("MRLY", 2));
            ////}

            CommentCollection comments = new CommentCollection();

            comments.Add(new CommentItem("NODE", "PC", "First Comment to NODE, Node Name is PC"));
            comments.Add(new CommentItem("NODE", "PC", "Second Comment to NODE, Node Name is PC"));
            //comments.Add(new CommentItem("NODE", "TGT", "Comment to MRTLY"));
            comments.Add(new CommentItem("NODE", "MRLY", "Comment to TGT"));



            AttributeCollection attributes = new AttributeCollection();

            attributes.Add(new AttributeItem("Address", "NODE", "STRING", "A Node-hoz tartizó cím", "Address", "[0..64]"));
            attributes.Add(new AttributeItem("DeviceNetAddress", "NODE", "STRING", "DeviceNetAddress Node-hoz tartizó cím", "DeviceNet address", "[0..64]"));
            attributes.Add(new AttributeItem("UseAdapterSerialNumber", "NODE", "STRING", "Előírja hogy ha több adapter van a akkor melyiket használja", "Adapter Serial Number", "SerialNumber"));


            DataSet dataSet = new DataSet("Database");

            //dataSet.BeginInit();

            /*Nodes*/
            /*NodeNameColumnPK, AddressColumn */
            DataTable nodesDataTable = ToDataTable(nodes, "Nodes");

            nodesDataTable.PrimaryKey = new DataColumn[] { nodesDataTable.Columns["Name"] };
            dataSet.Tables.Add(nodesDataTable);

            /*Comments*/
            /*Object - ObjectName PK, Content*/
            DataTable commentsDataTable = ToDataTable(comments, "Comments");

            nodesDataTable.PrimaryKey = new DataColumn[] { nodesDataTable.Columns["Object"], nodesDataTable.Columns["ObjectName"] };
            dataSet.Tables.Add(commentsDataTable);

            /*Attriubtes*/
            /*Object - Name PK, Type, ToolTip, ShowName, Unit, Comment*/
            DataTable attributesDataTable = ToDataTable(attributes, "Attributes");

            attributesDataTable.PrimaryKey = new DataColumn[] { attributesDataTable.Columns["Object"], attributesDataTable.Columns["Name"] };
            dataSet.Tables.Add(attributesDataTable);

            /*Node View*/
            /*Name, Comment*/
            DataTable nodesViewDataTable = new DataTable("NodesView");

            DataColumn nodeNameColumn = new DataColumn("Name", typeof(string));

            nodesViewDataTable.Columns.Add(nodeNameColumn);

            DataColumn commentColumn = new DataColumn("Comment", typeof(string));

            nodesViewDataTable.Columns.Add(commentColumn);


            //ForeignKeyConstraint commentFK = new ForeignKeyConstraint("First",

//            DataRelation commentRelation = new DataRelation("A",


            dataSet.Tables.Add(nodesViewDataTable);



            //var l = dataSet.GetChanges();



            dataSet.AcceptChanges();

            //var i =   dataSet.GetChanges();

            dataGridViewBackgorundText1.DataSource = dataSet;
            dataGridViewBackgorundText1.DataMember = "NodesView";



            //ForeignKeyConstraint commentFK = new ForeignKeyConstraint("First",



            //       DataRelation nodeCommentsRelation =


            //dataGridViewBackgorundText1.DataSource = dataSet.DefaultViewManager;  //new NodeCollectionView() { new NodeItemView() };

            //dataGridViewBackgorundText1.Da

            //dataGridViewBackgorundText1.AutoGenerateColumns = true;
        }
Пример #21
0
        public void WriteXmlSchema5()
        {
            string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
<xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
" +
"  <xs:element name=\"Example\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\""
              + @">
    <xs:complexType>
      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
        <xs:element name=""StandAlone"">
          <xs:complexType>
            <xs:attribute name=""ID"" type=""xs:int"" use=""required"" />
            <xs:attribute name=""Desc"" type=""xs:string"" use=""required"" />
          </xs:complexType>
        </xs:element>
        <xs:element name=""Dimension"">
          <xs:complexType>
            <xs:attribute name=""Number"" msdata:ReadOnly=""true"" type=""xs:int"" use=""required"" />
            <xs:attribute name=""Title"" type=""xs:string"" use=""required"" />
          </xs:complexType>
        </xs:element>
        <xs:element name=""Element"">
          <xs:complexType>
            <xs:attribute name=""Dimension"" msdata:ReadOnly=""true"" type=""xs:int"" use=""required"" />
            <xs:attribute name=""Number"" msdata:ReadOnly=""true"" type=""xs:int"" use=""required"" />
            <xs:attribute name=""Title"" type=""xs:string"" use=""required"" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name=""PK_Dimension"" msdata:PrimaryKey=""true"">
      <xs:selector xpath="".//Dimension"" />
      <xs:field xpath=""@Number"" />
    </xs:unique>
    <xs:unique name=""PK_Element"" msdata:PrimaryKey=""true"">
      <xs:selector xpath="".//Element"" />
      <xs:field xpath=""@Dimension"" />
      <xs:field xpath=""@Number"" />
    </xs:unique>
    <xs:keyref name=""FK_Element_To_Dimension"" refer=""PK_Dimension"">
      <xs:selector xpath="".//Element"" />
      <xs:field xpath=""@Dimension"" />
    </xs:keyref>
  </xs:element>
</xs:schema>";
            DataSet ds = new DataSet("Example");

            // Add a DataTable with no ReadOnly columns
            DataTable dt1 = new DataTable("StandAlone");
            ds.Tables.Add(dt1);

            // Add a ReadOnly column
            dt1.Columns.Add(new DataColumn("ID", typeof(int), "",
                MappingType.Attribute));
            dt1.Columns["ID"].AllowDBNull = false;

            dt1.Columns.Add(new DataColumn("Desc", typeof
                (string), "", MappingType.Attribute));
            dt1.Columns["Desc"].AllowDBNull = false;

            // Add related DataTables with ReadOnly columns
            DataTable dt2 = new DataTable("Dimension");
            ds.Tables.Add(dt2);
            dt2.Columns.Add(new DataColumn("Number", typeof
                (int), "", MappingType.Attribute));
            dt2.Columns["Number"].AllowDBNull = false;
            dt2.Columns["Number"].ReadOnly = true;

            dt2.Columns.Add(new DataColumn("Title", typeof
                (string), "", MappingType.Attribute));
            dt2.Columns["Title"].AllowDBNull = false;

            dt2.Constraints.Add("PK_Dimension", dt2.Columns["Number"], true);

            DataTable dt3 = new DataTable("Element");
            ds.Tables.Add(dt3);

            dt3.Columns.Add(new DataColumn("Dimension", typeof
                (int), "", MappingType.Attribute));
            dt3.Columns["Dimension"].AllowDBNull = false;
            dt3.Columns["Dimension"].ReadOnly = true;

            dt3.Columns.Add(new DataColumn("Number", typeof
                (int), "", MappingType.Attribute));
            dt3.Columns["Number"].AllowDBNull = false;
            dt3.Columns["Number"].ReadOnly = true;

            dt3.Columns.Add(new DataColumn("Title", typeof
                (string), "", MappingType.Attribute));
            dt3.Columns["Title"].AllowDBNull = false;

            dt3.Constraints.Add("PK_Element", new DataColumn[] {
                dt3.Columns ["Dimension"],
                dt3.Columns ["Number"] }, true);

            ds.Relations.Add("FK_Element_To_Dimension",
                dt2.Columns["Number"], dt3.Columns["Dimension"]);

            ds.AcceptChanges();

            StringWriter sw = new StringWriter();
            ds.WriteXmlSchema(sw);

            string result = sw.ToString();

            Assert.Equal(result.Replace("\r\n", "\n"), xmlschema.Replace("\r\n", "\n"));
        }
Пример #22
0
        private void tb_add_Click(object sender, EventArgs e)
        {
            try
            {
                #region 基本条件判断

                this.rtbmsg.Text = "";
                if (string.IsNullOrEmpty(this.tb_pn.Text.Trim()))
                {
                    ShowPrgMsg("请输入成品料号!", mLogMsgType.Error); return;
                }

                if (string.IsNullOrEmpty(this.tb_qty.Text.Trim()))

                {
                    ShowPrgMsg("请填写移库数量!", mLogMsgType.Error); return;
                }
                if (string.IsNullOrEmpty(this.tb_out.Text.Trim()))

                {
                    ShowPrgMsg("请填写移出库厂区!", mLogMsgType.Error); return;
                }
                if (string.IsNullOrEmpty(this.tb_in.Text.Trim()))

                {
                    ShowPrgMsg("请填写移入库厂区!", mLogMsgType.Error); return;
                }

                if (this.tb_in.Text.Trim() == this.tb_out.Text.Trim())
                {
                    ShowPrgMsg("移出库和移入库厂区相同,无需移库!", mLogMsgType.Error);
                    return;
                }
                dt_qty = FrmBLL.ReleaseData.arrByteToDataTable(refWebtWarehouseWipTracking.Instance.GetQtyByPartnumber(this.tb_pn.Text.Trim(), this.tb_out.Text.Trim()));

                if (dt_qty.Rows.Count > 0)
                {
                    string OutQty = dt_qty.Rows[0]["qty"].ToString();

                    if (Convert.ToInt32(OutQty) == 0)
                    {
                        ShowPrgMsg("没有资料,请确认成品料号和厂区是否一致!", mLogMsgType.Error); return;
                    }

                    if (Convert.ToInt32(OutQty) < Convert.ToInt32(this.tb_qty.Text.Trim()))
                    {
                        ShowPrgMsg("移库数量大于库存数量,库存数量为:" + OutQty, mLogMsgType.Error); return;
                    }

                    if (this.listView.Items.Count > 0)
                    {
                        for (int i = 0; i < this.listView.Items.Count; i++)
                        {
                            string ssss = this.listView.Items[i].SubItems[1].Text.ToString();
                            if (this.tb_pn.Text.Trim() == ssss)
                            {
                                ShowPrgMsg("该成品料号已经在当前移库单号存在,请输入其他成品料号!", mLogMsgType.Error);
                                this.tb_qty.Text = "";
                                this.tb_out.Text = "";
                                this.tb_in.Text  = "";
                                this.tb_pn.Focus();
                                this.tb_pn.SelectAll();
                                return;
                            }
                        }
                    }

                    if (string.IsNullOrEmpty(this.tb_id.Text))
                    {
                        this.tb_id.Text = refWebtz_whs_move_store.Instance.Sel_MOVEWH_ID();
                    }

                    #endregion

                    DataTable dt = new DataTable();
                    DataSet   ds = new DataSet();
                    dt.Columns.Add("cH_ID");
                    dt.Columns.Add("cH_PN");
                    dt.Columns.Add("cH_PROD");
                    dt.Columns.Add("cH_QTY");
                    dt.Columns.Add("cH_OUT");
                    dt.Columns.Add("cH_IN");

                    DataRow NEWROW = dt.NewRow();
                    NEWROW["cH_ID"]   = this.tb_id.Text;
                    NEWROW["cH_PN"]   = this.tb_pn.Text.Trim();
                    NEWROW["cH_PROD"] = dt_qty.Rows[0]["productname"].ToString();
                    NEWROW["cH_QTY"]  = this.tb_qty.Text.Trim();
                    NEWROW["cH_OUT"]  = this.tb_out.Text.Trim();
                    NEWROW["cH_IN"]   = this.tb_in.Text.Trim();

                    dt.Rows.Add(NEWROW);
                    ds.Tables.Add(dt);
                    ds.AcceptChanges();
                    ListViewItem ivi = new ListViewItem();
                    this.listView.View = System.Windows.Forms.View.Details;

                    ivi.SubItems[0].Text = ds.Tables[0].Rows[0]["cH_ID"].ToString();
                    ivi.SubItems.Add(ds.Tables[0].Rows[0]["cH_PN"].ToString());
                    ivi.SubItems.Add(ds.Tables[0].Rows[0]["cH_PROD"].ToString());
                    ivi.SubItems.Add(ds.Tables[0].Rows[0]["cH_QTY"].ToString());
                    ivi.SubItems.Add(ds.Tables[0].Rows[0]["cH_OUT"].ToString());
                    ivi.SubItems.Add(ds.Tables[0].Rows[0]["cH_IN"].ToString());

                    this.listView.Items.Add(ivi);

                    tb_initializers();
                }
                else
                {
                    ShowPrgMsg("没有资料,请确认成品料号和厂区是否一致!", mLogMsgType.Error); return;
                }
            }
            catch (Exception ex)
            {
                this.mfrm.ShowPrgMsg(ex.Message, MainParent.MsgType.Error);
            }
        }
Пример #23
0
        public void RuleTest()
        {
            DataSet ds = new DataSet("testds");
            DataTable parent = ds.Tables.Add("parent");
            DataTable child = ds.Tables.Add("child");

            parent.Columns.Add("id", typeof(int));
            parent.Columns.Add("name", typeof(string));
            parent.PrimaryKey = new DataColumn[] { parent.Columns["id"] };

            child.Columns.Add("id", typeof(int));
            child.Columns.Add("parent", typeof(int));
            child.Columns.Add("name", typeof(string));
            child.PrimaryKey = new DataColumn[] { child.Columns["id"] };

            DataRelation relation = ds.Relations.Add("parent_child",
                                  parent.Columns["id"],
                                  child.Columns["parent"]);

            parent.Rows.Add(new object[] { 1, "mono test 1" });
            parent.Rows.Add(new object[] { 2, "mono test 2" });
            parent.Rows.Add(new object[] { 3, "mono test 3" });

            child.Rows.Add(new object[] { 1, 1, "mono child test 1" });
            child.Rows.Add(new object[] { 2, 2, "mono child test 2" });
            child.Rows.Add(new object[] { 3, 3, "mono child test 3" });

            ds.AcceptChanges();

            parent.Rows[0]["name"] = "mono changed test 1";

            Assert.Equal(DataRowState.Unchanged, parent.Rows[0].GetChildRows(relation)[0].RowState);

            ds.RejectChanges();
            parent.Rows[0]["id"] = "4";

            DataRow childRow = parent.Rows[0].GetChildRows(relation)[0];
            Assert.Equal(DataRowState.Modified, childRow.RowState);
            Assert.Equal(4, (int)childRow["parent"]);
        }
Пример #24
0
        private void btnGuardar_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //ValidarDatos
            if (!ValidarDatos())
            {
                return;
            }

            if (currentRow != null)
            {
                lblStatus.Caption = "Actualizando : " + currentRow["Descr"].ToString();

                Application.DoEvents();
                currentRow.BeginEdit();

                currentRow["Descr"]   = this.txtDescr.EditValue;
                currentRow["Activo"]  = this.chkActivo.EditValue;
                currentRow["IDTipo"]  = this.slkupSubTipoDocumento.EditValue;
                currentRow["SubTipo"] = this.txtSubTipo.EditValue;
                currentRow["Activo"]  = this.chkActivo.EditValue;


                currentRow.EndEdit();

                DataSet _dsChanged = _dsSubTipoDocumento.GetChanges(DataRowState.Modified);

                bool okFlag = true;
                if (_dsChanged.HasErrors)
                {
                    okFlag = false;
                    string msg = "Error en la fila con el tipo Id";

                    foreach (DataTable tb in _dsChanged.Tables)
                    {
                        if (tb.HasErrors)
                        {
                            DataRow[] errosRow = tb.GetErrors();

                            foreach (DataRow dr in errosRow)
                            {
                                msg = msg + dr["IDTipo"].ToString();
                            }
                        }
                    }

                    lblStatus.Caption = msg;
                }

                //Si no hay errores

                if (okFlag)
                {
                    SubTipoDocumentoDAC.oAdaptador.Update(_dsChanged, "Data");
                    lblStatus.Caption = "Actualizado " + currentRow["Descr"].ToString();
                    Application.DoEvents();
                    isEdition = false;
                    _dsSubTipoDocumento.AcceptChanges();
                    PopulateGrid();
                    SetCurrentRow();
                    HabilitarControles(false);
                    AplicarPrivilegios();
                }
                else
                {
                    _dsSubTipoDocumento.RejectChanges();
                }
            }
            else
            {
                //nuevo registro
                currentRow = _dtSubTipoDocumento.NewRow();

                currentRow["Descr"]   = this.txtDescr.EditValue;
                currentRow["Activo"]  = this.chkActivo.EditValue;
                currentRow["IDTipo"]  = this.slkupSubTipoDocumento.EditValue;
                currentRow["SubTipo"] = this.txtSubTipo.EditValue;


                currentRow["Activo"] = this.chkActivo.EditValue;


                _dtSubTipoDocumento.Rows.Add(currentRow);
                try
                {
                    SubTipoDocumentoDAC.oAdaptador.Update(_dsSubTipoDocumento, "Data");
                    _dsSubTipoDocumento.AcceptChanges();
                    isEdition         = false;
                    lblStatus.Caption = "Se ha ingresado un nuevo registro";
                    Application.DoEvents();
                    PopulateGrid();
                    SetCurrentRow();
                    HabilitarControles(false);
                    AplicarPrivilegios();
                    ColumnView view = this.gridView1;
                    view.MoveLast();
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    _dsSubTipoDocumento.RejectChanges();
                    currentRow = null;
                    MessageBox.Show(ex.Message);
                }
            }
        }
Пример #25
0
            /// <summary>
            /// Executes the respective command for each inserted, updated, or deleted row in the DataSet.
            /// </summary>
            /// <remarks>
            /// e.g.:  
            ///  UpdateDataset(conn, insertCommand, deleteCommand, updateCommand, dataSet, "Order");
            /// </remarks>
            /// <param name="insertCommand">A valid SQL statement  to insert new records into the data source</param>
            /// <param name="deleteCommand">A valid SQL statement to delete records from the data source</param>
            /// <param name="updateCommand">A valid SQL statement used to update records in the data source</param>
            /// <param name="dataSet">The DataSet used to update the data source</param>
            /// <param name="tableName">The DataTable used to update the data source.</param>
            public static void UpdateDataset(SQLiteCommand insertCommand, SQLiteCommand deleteCommand, SQLiteCommand updateCommand, DataSet dataSet, string tableName)
            {
                if (insertCommand == null) throw new ArgumentNullException("insertCommand");
                if (deleteCommand == null) throw new ArgumentNullException("deleteCommand");
                if (updateCommand == null) throw new ArgumentNullException("updateCommand");
                if (tableName == null || tableName.Length == 0) throw new ArgumentNullException("tableName");

                // Create a SQLiteDataAdapter, and dispose of it after we are done
                using (SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter())
                {
                    // Set the data adapter commands
                    dataAdapter.UpdateCommand = updateCommand;
                    dataAdapter.InsertCommand = insertCommand;
                    dataAdapter.DeleteCommand = deleteCommand;

                    // Update the dataset changes in the data source
                    dataAdapter.Update(dataSet, tableName);

                    // Commit all the changes made to the DataSet
                    dataSet.AcceptChanges();
                }
            }
Пример #26
0
        internal static void Load(bool tryBackup = true)
        {
            //if (m_Dataset != null)
            //	return;

            m_Dataset = new DataSet();
            string filename = Path.Combine(Assistant.Engine.RootPath, "Profiles", m_Save);
            string backup   = Path.Combine(Assistant.Engine.RootPath, "Backup", m_Save);

            if (File.Exists(filename))
            {
                try
                {
                    m_Dataset = Newtonsoft.Json.JsonConvert.DeserializeObject <DataSet>(File.ReadAllText(filename));
                    DataTableCollection tables = m_Dataset.Tables;

                    DataTable shards = m_Dataset.Tables["SHARDS"];
                    if (!shards.Columns.Contains("CUOClient"))
                    {
                        shards.Columns.Add("CUOClient", typeof(string));
                        foreach (DataRow row in shards.Rows)
                        {
                            row["CUOClient"] = string.Empty;
                        }
                    }

                    File.Copy(filename, backup, true);
                }
                catch (Exception)
                {
                    if (tryBackup)
                    {
                        MessageBox.Show("Error loading " + m_Save + ", Try to restore from backup!");
                        File.Copy(backup, filename, true);
                        Load(false);
                    }
                    else
                    {
                        throw;
                    }
                    return;
                }
            }
            else
            {
                // ----------- SHARDS ----------
                DataTable shards = new DataTable("SHARDS");
                shards.Columns.Add("Description", typeof(string));                 // Key
                shards.Columns.Add("ClientPath", typeof(string));
                shards.Columns.Add("ClientFolder", typeof(string));
                shards.Columns.Add("CUOClient", typeof(string));
                shards.Columns.Add("Host", typeof(string));
                shards.Columns.Add("Port", typeof(long));
                shards.Columns.Add("PatchEnc", typeof(bool));
                shards.Columns.Add("OSIEnc", typeof(bool));
                shards.Columns.Add("Selected", typeof(bool));

                DataRow uod = shards.NewRow();
                uod.ItemArray = new object[] { "OSI Ultima Online", String.Empty, String.Empty, String.Empty, "login.ultimaonline.com", 7776, true, true, true };
                shards.Rows.Add(uod);

                DataRow eventine = shards.NewRow();
                eventine.ItemArray = new object[] { "UO Eventine", String.Empty, String.Empty, String.Empty, "shard.uoeventine.com", 2593, true, false, false };
                shards.Rows.Add(eventine);

                m_Dataset.Tables.Add(shards);


                m_Dataset.AcceptChanges();
            }
        }
Пример #27
0
        private void createTables()
        {
            dtProcesses = new DataTable("Processes");
            dsProcesses = new DataSet();
            bsProcesses = new BindingSource();
            #region proc_table
            int          iProcIDcolumn = -1;
            DataColumn[] dc            = new DataColumn[_fieldsProcess.Length];
            //string[] _fieldNames = new string[6] { "procID", "Process", "User", "Kernel", "Time", "Duration" };
            //build the process table columns
            for (int i = 0; i < _fieldsProcess.Length; i++)
            {
                dc[i]            = new DataColumn();
                dc[i].Caption    = _fieldsProcess[i].FieldName;  // "App";
                dc[i].ColumnName = _fieldsProcess[i].FieldName;  // "App";
                dc[i].DataType   = System.Type.GetType(_fieldsProcess[i].FieldType);

                //if (dc[i].DataType = System.Type.GetType("System.DateTime"))
                //    dc[i].DateTimeMode = DataSetDateTime.Local;

                if (dc[i].DataType == System.Type.GetType("System.String"))
                {
                    dc[i].MaxLength = 256;
                }

                if (dc[i].Caption.Equals("ProcID", StringComparison.CurrentCultureIgnoreCase))
                {
                    dc[i].Unique  = true;
                    iProcIDcolumn = i;
                }
                else
                {
                    dc[i].Unique = false;
                }

                dc[i].AllowDBNull = false;
            }
            //add header
            dtProcesses.Columns.AddRange(dc);

            DataColumn[] dcKey = new DataColumn[1];
            dcKey[0] = dc[iProcIDcolumn];
            dtProcesses.PrimaryKey = dcKey;

            dsProcesses.Tables.Add(dtProcesses);
            #endregion

            #region threadsTable
            dtThreads = new DataTable("Threads");
            dc        = new DataColumn[_fieldsThread.Length];
            //build the process table columns
            for (int i = 0; i < _fieldsThread.Length; i++)
            {
                dc[i]            = new DataColumn();
                dc[i].Caption    = _fieldsThread[i].FieldName;  // "App";
                dc[i].ColumnName = _fieldsThread[i].FieldName;  // "App";
                dc[i].DataType   = System.Type.GetType(_fieldsThread[i].FieldType);

                if (dc[i].DataType == System.Type.GetType("System.String"))
                {
                    dc[i].MaxLength = 256;
                }

                if (dc[i].Caption.Equals("ThreadID", StringComparison.CurrentCultureIgnoreCase))
                {
                    dc[i].Unique = true;
                }
                else
                {
                    dc[i].Unique = false;
                }
                dc[i].AllowDBNull = false;
            }
            //add header
            dtThreads.Columns.AddRange(dc);

            DataColumn[] dcKeyThread = new DataColumn[1];
            dcKeyThread[0]       = dc[0];
            dtThreads.PrimaryKey = dcKeyThread;

            dsProcesses.Tables.Add(dtThreads);
            #endregion

            bsProcesses.DataSource = dsProcesses;
            bsProcesses.DataMember = dsProcesses.Tables[0].TableName;

            dtProcesses.AcceptChanges();
            dsProcesses.AcceptChanges();

            this._dataGrid.DataSource = bsProcesses;
            this._dataGrid.Refresh();
        }
Пример #28
0
        public string UpdateUserTypeNewIndex()
        {
            string result = "";
            string guid   = Guid.NewGuid().ToString();

            try
            {
                DataSet                 ds          = new DataSet();
                DataControl.BLUser      _objBlUser  = new DataControl.BLUser();
                DataControl.CurrentInfo _objCurInfo = new DataControl.CurrentInfo();
                ds = _objBlUser.GetAllUserTypesForMigration(_objCurInfo.GetCompanyCode());
                DataSet   dsAllUserTypes = new DataSet();
                DataRow[] dr;
                dr = ds.Tables[0].AsEnumerable().Where(c => c["User_Type_Code"].ToString() == c["Under_User_Type"].ToString()).ToArray();
                if (dr.Length > 0)
                {
                    string userTypeCode = dr[0]["User_Type_Code"].ToString();
                    string userTypeId   = dr[0]["User_Type_ID"].ToString();
                    dsAllUserTypes = _objBlUser.GetUserTypesHierarchyDataset(_objCurInfo.GetCompanyCode(), userTypeCode, _objCurInfo.GetUserCode(), guid);
                    if (dsAllUserTypes.Tables[0].Rows.Count > 0)
                    {
                        //Display Order Update
                        for (int d = 0; d < dsAllUserTypes.Tables[0].Rows.Count; d++)
                        {
                            dsAllUserTypes.Tables[0].Rows[d]["User_Type_Display_Order"] = d + 1;
                            dsAllUserTypes.AcceptChanges();
                        }
                        //Root user seq and full index update
                        DataRow[] drRoot;
                        drRoot = dsAllUserTypes.Tables[0].AsEnumerable().Where(c => c["User_Type_Code"].ToString() == c["Under_User_Type"].ToString()).ToArray();
                        drRoot[0]["User_Type_Full_Index"] = userTypeId + ".";
                        drRoot[0]["User_Type_Seq_Index"]  = "1";
                        drRoot[0]["Company_Code"]         = _objCurInfo.GetCompanyCode();
                        // Root child nodes seq and full index updation
                        DataRow[] drChild;
                        drChild = dsAllUserTypes.Tables[0].AsEnumerable().Where(d => d["Under_User_Type"].ToString() == userTypeCode).ToArray();
                        if (drChild.Length > 0)
                        {
                            int c = 0;
                            foreach (DataRow drr in drChild)
                            {
                                c++;
                                drr["User_Type_Seq_Index"] = c.ToString();
                                drr["Company_Code"]        = _objCurInfo.GetCompanyCode();
                                dsAllUserTypes.AcceptChanges();
                            }
                        }
                        dsAllUserTypes.AcceptChanges();
                        int displayOrder = 0;
                        for (int i = 0; i < dsAllUserTypes.Tables[0].Rows.Count; i++)
                        {
                            displayOrder++;
                            string curUserTypeCode    = dsAllUserTypes.Tables[0].Rows[i]["User_Type_Code"].ToString();
                            string curParUserTypeCode = dsAllUserTypes.Tables[0].Rows[i]["Under_User_Type"].ToString();
                            if (curUserTypeCode != curParUserTypeCode)
                            {
                                string    curUserTypeId = dsAllUserTypes.Tables[0].Rows[i]["User_Type_ID"].ToString();
                                string    parIndex      = "";
                                DataRow[] drTemp;
                                drTemp = dsAllUserTypes.Tables[0].AsEnumerable().Where(c => c["User_Type_Code"].ToString() == curParUserTypeCode).ToArray();
                                if (drTemp.Length > 0)
                                {
                                    parIndex = drTemp[0]["User_Type_Full_Index"].ToString();
                                    dsAllUserTypes.Tables[0].Rows[i]["User_Type_Full_Index"] = parIndex + curUserTypeId + ".";
                                    dsAllUserTypes.Tables[0].Rows[i]["Company_Code"]         = _objCurInfo.GetCompanyCode();
                                    dsAllUserTypes.Tables[0].Rows[i]["Under_User_Type_ID"]   = drTemp[0]["User_Type_ID"].ToString();
                                }

                                drChild = dsAllUserTypes.Tables[0].AsEnumerable().Where(d => d["Under_User_Type"].ToString() == curUserTypeCode).ToArray();
                                if (drChild.Length > 0)
                                {
                                    int c = 0;
                                    foreach (DataRow drr in drChild)
                                    {
                                        c++;
                                        drr["User_Type_Seq_Index"] = c.ToString();
                                        drr["Company_Code"]        = _objCurInfo.GetCompanyCode();
                                        dsAllUserTypes.AcceptChanges();
                                    }
                                }
                            }
                        }
                        //Update Qry
                        result = _objBlUser.UserTypeBulkTempInsert(_objCurInfo.GetCompanyCode(), dsAllUserTypes.Tables[0], "MIGRATION");
                        if (result.Split(':')[0].ToUpper() == "SUCCESS")
                        {
                            result = _objBlUser.UpdateUserTypeIndexFromTemptoUserMaster(_objCurInfo.GetCompanyCode(), "MIGRATION", guid, _objCurInfo.GetUserCode());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                result = "FAILURE:" + ex.Message;
            }
            return(result);
        }
Пример #29
0
        /// <summary>
        /// Retrieves the View objects from the specified SQL server DB
        /// </summary>
        /// <param name="_connection">The SQL Connection used for the SQL server.</param>
        /// <param name="args"></param>
        public override void GetObject <Views>(SqlConnection _connection, object[] args)
        {
            string cmd_GetViewsList = string.Format(SqlQueryStrings.GetViewsList, _connection.Database);

            using (SqlCommand _command_Views = new SqlCommand(cmd_GetViewsList, _connection))
            {
                _command_Views.Prepare();
                using (SqlDataAdapter _sdaTables = new SqlDataAdapter(_command_Views))
                {
                    _sdaTables.Fill(this);
                }
            }
            if (this.Tables.Count > 0 && this.Tables[1].Rows.Count > 0)
            {
                // RENAME SECOND TABLE
                this.Tables[1].TableName = "VIEW";

                // add default tables
                this.Tables.Add("CREATE_TEXT");
                this.Tables["CREATE_TEXT"].Columns.Add("VIEW_NAME");
                this.Tables.Add("VIEW_DEPENDS");
                this.Tables["VIEW_DEPENDS"].Columns.Add("VIEW_NAME");

                DataRow [] _arTables = new DataRow [this.Tables[1].Rows.Count];

                this.Tables[1].Rows.CopyTo(_arTables, 0);
                foreach (DataRow _dr in _arTables)
                {
                    DataSet _dsFields         = null;
                    string  _tableName        = _dr["VIEW_NAME"].ToString();
                    string  cmd_GetViewSchema = string.Format(SqlQueryStrings.GetViewSchema, _connection.Database, _tableName);
                    using (SqlCommand _command_Schema = new SqlCommand(cmd_GetViewSchema, _connection))
                    {
                        _command_Schema.Prepare();
                        using (SqlDataAdapter _sdaFields = new SqlDataAdapter(_command_Schema))
                        {
                            _dsFields = new DataSet("VIEW_SCHEMA");
                            _sdaFields.Fill(_dsFields);
                            _dsFields.AcceptChanges();
                        }
                    }
                    if (_dsFields != null && _dsFields.Tables.Count >= 1)
                    {
                        // rename returned tables from table[0] .. table[n]
                        // to the following values
                        _dsFields.Tables[0].TableName = "CREATE_TEXT";

                        if (_dsFields.Tables.Count >= 2)
                        {
                            _dsFields.Tables[1].TableName = "VIEW_DEPENDS";
                        }

                        AddMissingTableColumn(ref _dsFields, "CREATE_TEXT", "VIEW_NAME", false);
                        AddMissingTableColumn(ref _dsFields, "VIEW_DEPENDS", "VIEW_NAME", false);

                        try
                        {
                            foreach (DataTable _dt in _dsFields.Tables)
                            {
                                if (this.Tables[_dt.TableName] != null)
                                {
                                    if (_dt.Rows.Count == 0)
                                    {
                                        _dt.Rows.Add(_dt.NewRow());
                                    }
                                    DataColumn _dc = this.Tables[_dt.TableName].Columns["VIEW_NAME"];
                                    _dc.DefaultValue = _tableName;
                                    this.Merge(_dt, true, MissingSchemaAction.Add);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                    }
                }
                this.Relations.Add("ViewsCreateTexts",
                                   this.Tables["VIEW"].Columns["VIEW_NAME"],
                                   this.Tables["CREATE_TEXT"].Columns["VIEW_NAME"]).Nested = true;
                this.Relations.Add("ViewDepends",
                                   this.Tables["VIEW"].Columns["VIEW_NAME"],
                                   this.Tables["VIEW_DEPENDS"].Columns["VIEW_NAME"]).Nested = true;

                string source = string.Format("[{0}].[{1}]", _connection.DataSource, _connection.Database);
                logger.Debug("\n{1}, Catalog Schema, number of Views: {0}", this.Tables[1].Rows.Count, source);
            }
        }
Пример #30
0
 public void DatasetLoadComplete()
 {
     workbookData.AcceptChanges();
     DatasetHelpers.FixDataTypes(workbookData);
 }
Пример #31
0
        protected void EnlazarDatos()
        {
            try
            {
                #region Calcular semana considerando año bisiesto.

                int       pnAnioMonstrado = DateTime.Now.Year;
                int       pnSemanaMostrada;
                DateTime  loFecha = DateTime.Parse(txtFechaInicio.Text);
                DayOfWeek loDia   = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(loFecha);
                if (loDia >= DayOfWeek.Monday && loDia <= DayOfWeek.Wednesday)
                {
                    loFecha = loFecha.AddDays(3);
                }
                pnSemanaMostrada = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(loFecha, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

                #endregion

                Ventas            loVentas          = new Ventas();
                Sesion            loSesion          = (Sesion)Session["Sesion"];
                InformeItinerario loItinerario      = new InformeItinerario();
                DataTable         loItinerarioVenta = loVentas.ObtenerItineario(
                    (Sesion)Session["Sesion"],
                    int.Parse(ddlTelemarketings.SelectedValue),
                    int.Parse(ddlSucursales.SelectedValue),
                    pnAnioMonstrado,
                    pnSemanaMostrada
                    );
                DataTable loTotalSemanal = loVentas.ObtenerTotalSemanal(
                    (Sesion)Session["Sesion"],
                    int.Parse(ddlTelemarketings.SelectedValue),
                    loFecha.AddDays(1 - (((int)loFecha.DayOfWeek) == 0 ? 7 : (int)loFecha.DayOfWeek)),
                    loFecha.AddDays(1 - (((int)loFecha.DayOfWeek) == 0 ? 7 : (int)loFecha.DayOfWeek)).AddDays(-6));
                DataSet loFuenteDatos = new DataSet();
                loFuenteDatos.DataSetName = "DataSourceItinerario";
                loFuenteDatos.Tables.Add(loItinerarioVenta);
                loFuenteDatos.Tables[0].TableName = "ITINERARIO_VENTA";
                loFuenteDatos.Tables.Add(loTotalSemanal);
                loFuenteDatos.Tables[1].TableName = "TOTAL_X_SEMANA";
                loFuenteDatos.AcceptChanges();

                loItinerario.DataMember = "DataSourceItinerario";
                loItinerario.DataSource = loFuenteDatos;
                loItinerario.FillDataSource();

                loItinerario.Parameters["psSucursal"].Value      = ddlSucursales.SelectedItem;
                loItinerario.Parameters["psTelemarketing"].Value = ddlTelemarketings.SelectedItem;
                loItinerario.Parameters["psPeriodo"].Value       = "SEMANA: " + pnSemanaMostrada.ToString()
                                                                   + ", FECHA: "
                                                                   + loFecha.AddDays(1 - (((int)loFecha.DayOfWeek) == 0 ? 7 : (int)loFecha.DayOfWeek)).ToShortDateString()
                                                                   + " - "
                                                                   + loFecha.AddDays((1 - (((int)loFecha.DayOfWeek) == 0 ? 7 : (int)loFecha.DayOfWeek)) + 5).ToShortDateString();
                loItinerario.Parameters["psSucursal"].Visible      = false;
                loItinerario.Parameters["psTelemarketing"].Visible = false;
                loItinerario.Parameters["psPeriodo"].Visible       = false;


                #region Asignar permiso de imprimir y guardar
                if (Session["Permiso"] == null)
                {
                    foreach (Permiso loPermiso in loSesion.Usuario.Permiso)
                    {
                        if (loPermiso.Clave == 24)
                        {
                            foreach (Dapesa.Seguridad.Comun.Definiciones.TipoPermiso loTipoEmelento in loPermiso.TipoPermiso)
                            {
                                if (loTipoEmelento.ToString() == "Imprimir")
                                {
                                    #region Eliminar Boton Imprimir
                                    ReportToolbarItem saveItem = null;
                                    foreach (ReportToolbarItem item in xrInforme.ToolbarItems)
                                    {
                                        if (item.ItemKind == ReportToolbarItemKind.PrintReport || item.ItemKind == ReportToolbarItemKind.PrintPage)
                                        {
                                            saveItem = item;
                                        }
                                    }
                                    xrInforme.ToolbarItems.Remove(saveItem);
                                    saveItem = null;
                                    foreach (ReportToolbarItem item in xrInforme.ToolbarItems)
                                    {
                                        if (item.ItemKind == ReportToolbarItemKind.PrintPage || item.ItemKind == ReportToolbarItemKind.PrintPage)
                                        {
                                            saveItem = item;
                                        }
                                    }
                                    xrInforme.ToolbarItems.Remove(saveItem);
                                    #endregion
                                    xrInforme.ToolbarItems.Add(new ReportToolbarButton(ReportToolbarItemKind.PrintPage, true));
                                    xrInforme.ToolbarItems.Add(new ReportToolbarButton(ReportToolbarItemKind.PrintReport, true));
                                }
                            }
                        }
                        if (loPermiso.Clave == 24)
                        {
                            foreach (Dapesa.Seguridad.Comun.Definiciones.TipoPermiso loTipoEmelento in loPermiso.TipoPermiso)
                            {
                                if (loTipoEmelento.ToString() == "Guardar")
                                {
                                    #region Eliminar Boton Guadar
                                    ReportToolbarItem loItem = null;
                                    foreach (ReportToolbarItem item in xrInforme.ToolbarItems)
                                    {
                                        if (item.ItemKind == ReportToolbarItemKind.SaveToDisk || item.ItemKind == ReportToolbarItemKind.SaveToDisk)
                                        {
                                            loItem = item;
                                        }
                                    }
                                    xrInforme.ToolbarItems.Remove(loItem);
                                    #endregion
                                    xrInforme.ToolbarItems.Add(new ReportToolbarButton(ReportToolbarItemKind.SaveToDisk, true));
                                }
                            }
                        }
                    }
                }
                #endregion
                this.xrInforme.Report = loItinerario;
                loItinerario.CreateDocument();
                Page.Session["loInformeItinerario"] = loItinerario;
                CargarTotalesVenta(loTotalSemanal);
            }
            catch (Exception ex)
            {
                Session["Excepcion"] = ex;
                Response.Redirect("~/Error.aspx", false);
            }
        }
Пример #32
0
 /// <summary>
 /// 1) Merr detyrimet qe jane ne DataBase, shoqeron per detyrimet e marra perkthimet.
 /// 2) Merr shenimet e dhena nga skedari Informacione ne Xml dhe i hedh ne dataset
 /// </summary>
 /// <returns>DataSetin e plote me te gjitha perkthimet e dhena deri tani</returns>
 public DataSet ShfaqPerkthimet()
 {
     DbController db = new DbController();
     // Ne fillim marrim te gjitha llojet e detyrimeve qe jane ne DataBase
     DataSet dsDetyrime = db.Read("dbShfaqLlojetDetyrime");
     DataSet dsPerkthime = new DataSet();
     if (!File.Exists(Application.StartupPath + "\\Perkthime.xml"))
     {
         // Nese skedari xml Perkthime nuk ekziston atehere krijoje dhe shto edhe fushat e duhura
         dsPerkthime.Tables.Add("Perkthime");
         dsPerkthime.Tables[0].Columns.Add("ID", typeof(String));
         dsPerkthime.Tables[0].Columns.Add("Shqip", typeof(String));
         dsPerkthime.Tables[0].Columns.Add("Anglisht", typeof(String));
         dsPerkthime.Tables[0].Columns.Add("Italisht", typeof(String));
         dsPerkthime.Tables[0].Columns.Add("Frengjisht", typeof(String));
         dsPerkthime.Tables[0].Columns.Add("Lloji", typeof(String));
         dsPerkthime.Tables.Add("Gjuha");
         dsPerkthime.Tables[1].Columns.Add("Gjuhe", typeof(String));
         DataRow drGjuha = dsPerkthime.Tables[1].NewRow();
         drGjuha[0] = "Shqip";
         dsPerkthime.Tables[1].Rows.Add(drGjuha);
         dsPerkthime.AcceptChanges();
         dsPerkthime.WriteXml(Application.StartupPath + "\\Perkthime.xml", XmlWriteMode.WriteSchema);
     }
     else
     {
         // Perndryshe, nese ekziston lexo kete skedar dhe hidhe ne dsPerkthime
         dsPerkthime.ReadXml(Application.StartupPath + "\\Perkthime.xml");
     }
     DataSet ds = dsPerkthime.Copy();
     ds.Tables[0].Rows.Clear();
     // Shtojme nje kolone te re Lloji e cila sherben per grupimin e fushave ne griden e
     // perkthimeve. Do te kete tre vlera, Detyrime, Shpenzime dhe Mesazhe
     //ds.Tables[0].Columns.Add("Lloji", typeof(String));
     foreach (DataRow drDetyrime in dsDetyrime.Tables[0].Rows)
     {
         DataRow dr = ds.Tables[0].NewRow();
         if (dsPerkthime.Tables[0].Select("ID = '" + Convert.ToString(drDetyrime[0]) + "'").Length == 0)
         {
             // Nese lloj_detyrimi nuk gjendet ne skedarin xml, atehere hidhe kete detyrim
             // duke vendosur vetem tekstin shqip dhe id-ne e tij
             dr[0] = drDetyrime[0].ToString();
             dr[1] = drDetyrime[1].ToString();
         }
         else
         {
             // Perndryshe nese detyrimi gjendet ne skedar xml, atehere hidh edhe perkthimet
             DataRow drPerkthime = (DataRow)dsPerkthime.Tables[0].Select("ID = '"
                 + drDetyrime[0].ToString() + "'").GetValue(0);
             dr[0] = drDetyrime[0].ToString();
             dr[1] = drDetyrime[1].ToString();
             dr[2] = drPerkthime[2].ToString();
             dr[3] = drPerkthime[3].ToString();
             dr[4] = drPerkthime[4].ToString();
         }
         dr[5] = "Detyrime";
         ds.Tables[0].Rows.Add(dr);
     }
     // Heqim dsDetyrime nga memorja
     dsDetyrime.Dispose();
     // Lexojme nga skedari Xml Informacione edhe mesazhet e falenderimit dhe te qendrimit ne hotel
     // dhe bashke me to edhe perkthimet
     DataSet dsInformacione = new DataSet();
     dsInformacione.ReadXml(Application.StartupPath + "\\Informacione.xml");
     DataRow dr1 = ds.Tables[0].NewRow();
     if (dsPerkthime.Tables[0].Select("ID = 'MesazhQendrimi'").Length == 0)
     {
         dr1[0] = "MesazhQendrimi";
         dr1[1] = dsInformacione.Tables[0].Rows[0][6];
         dr1[2] = "";
         dr1[3] = "";
         dr1[4] = "";
     }
     else
     {
         DataRow drMesazh = (DataRow)dsPerkthime.Tables[0].Select("ID = 'MesazhQendrimi'").GetValue(0);
         dr1[0] = "MesazhQendrimi";
         dr1[1] = dsInformacione.Tables[0].Rows[0][6];
         dr1[2] = drMesazh[2];
         dr1[3] = drMesazh[3];
         dr1[4] = drMesazh[4];
     }
     dr1[5] = "Mesazhe";
     ds.Tables[0].Rows.Add(dr1);
     DataRow dr2 = ds.Tables[0].NewRow();
     if (dsPerkthime.Tables[0].Select("ID = 'MesazhRezervimi'").Length == 0)
     {
         dr2[0] = "MesazhRezervimi";
         dr2[1] = dsInformacione.Tables[0].Rows[0][7];
         dr2[2] = "";
         dr2[3] = "";
         dr2[4] = "";
     }
     else
     {
         DataRow drMesazh = (DataRow)dsPerkthime.Tables[0].Select("ID = 'MesazhRezervimi'").GetValue(0);
         dr2[0] = "MesazhRezervimi";
         dr2[1] = dsInformacione.Tables[0].Rows[0][7];
         dr2[2] = drMesazh[2];
         dr2[3] = drMesazh[3];
         dr2[4] = drMesazh[4];
     }
     dr2[5] = "Mesazhe";
     ds.Tables[0].Rows.Add(dr2);
     return ds;
 }
Пример #33
0
        public virtual int Update(DataSet dataSet)
        {
            this.InitializeMembers();
            this.PLVRSTEIZNOSASet = (PLVRSTEIZNOSADataSet)dataSet;
            this.connDefault      = this.dsDefault.GetReadWriteConnection(this.daCurrentTransaction);
            if (this.PLVRSTEIZNOSASet == null)
            {
                throw new ArgumentException(this.resourceManager.GetString("nulldset"));
            }
            try
            {
                IEnumerator enumerator = null;
                this.connDefault.BeginTransaction();
                try
                {
                    enumerator = this.PLVRSTEIZNOSASet.PLVRSTEIZNOSA.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        PLVRSTEIZNOSADataSet.PLVRSTEIZNOSARow current = (PLVRSTEIZNOSADataSet.PLVRSTEIZNOSARow)enumerator.Current;
                        this.rowPLVRSTEIZNOSA = current;
                        if (Helpers.IsRowChanged(this.rowPLVRSTEIZNOSA))
                        {
                            this.ReadRowPlvrsteiznosa();
                            if (this.rowPLVRSTEIZNOSA.RowState == DataRowState.Added)
                            {
                                this.InsertPlvrsteiznosa();
                            }
                            else
                            {
                                if (this._Gxremove)
                                {
                                    this.Delete();
                                    continue;
                                }
                                this.UpdatePlvrsteiznosa();
                            }
                        }
                    }
                }
                finally
                {
                    if (enumerator is IDisposable)
                    {
                        (enumerator as IDisposable).Dispose();
                    }
                }
                dataSet.AcceptChanges();
                this.connDefault.Commit();
            }
            catch (System.Exception exception1)
            {
                throw exception1;

                //this.connDefault.Rollback();
            }
            finally
            {
                this.Cleanup();
            }
            return(0);
        }
Пример #34
0
        public bool DataSetInsertSource(List <string> strSQL, List <string> tableName, DataSet source, List <Dictionary <string, SqlParameter[]> > SqlParameter)
        {
            bool          result     = false;
            IDbConnection connection = null;

            connection = new SqlConnection(DefaultConnections.localDb.ToString());
            IDbTransaction transaction = connection.BeginTransaction();

            try
            {
                for (int i = 0; i < source.Tables.Count; i++)
                {
                    foreach (DataRow row in source.Tables[i].Rows)
                    {
                        if (row.RowState == DataRowState.Unchanged)
                        {
                            row.SetAdded();
                        }
                    }
                    var sql           = strSQL[i];
                    var tableNameinfo = tableName[i];
                    using (IDbCommand command = CreateCommand(sql, connection))
                    {
                        command.Transaction    = transaction;
                        command.CommandTimeout = 60 * 60;
                        DbDataAdapter adapter = new SqlDataAdapter((SqlCommand)command);
                        int           count   = adapter.Update(source, tableNameinfo);
                        source.AcceptChanges();
                        command.Dispose();
                    }
                }
                for (int i = 0; i < SqlParameter.Count; i++)
                {
                    SqlParameter temp = null;
                    foreach (var sqlitem in SqlParameter[i])
                    {
                        using (IDbCommand command = CreateCommand(sqlitem.Key.ToString(), connection))
                        {
                            command.CommandType    = CommandType.StoredProcedure;
                            command.Transaction    = transaction;
                            command.CommandTimeout = 60 * 60;
                            foreach (SqlParameter param in sqlitem.Value)
                            {
                                if (param.Direction == ParameterDirection.Output)
                                {
                                    temp = param;
                                }
                                command.Parameters.Add(param);
                            }
                            command.ExecuteNonQuery();

                            command.Dispose();
                        }
                    }
                }
                transaction.Commit();
                result = true;
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
            finally
            {
                connection.Close();
            }
            return(result);
        }
Пример #35
0
        static void Main(string[] args)
        {
            var dataSet = new DataSet("ShopDB");
            //var adapter = new SqlDataAdapter("Select * from Products", "Server=DESKTOP-3S2N5VP; Database=ShopDB; Trusted_Connection = true;");
            //adapter.Fill(dataSet);

            var employeeTable    = dataSet.Tables.Add("Employees");
            var employeeIdColumn = new DataColumn("Id", Type.GetType("System.Int32"));

            employeeIdColumn.ReadOnly          = true;
            employeeIdColumn.AutoIncrement     = true;
            employeeIdColumn.AutoIncrementSeed = 1;
            employeeIdColumn.AutoIncrementStep = 1;
            employeeIdColumn.AllowDBNull       = false;

            var employeeFullNameColumn = new DataColumn("FullName", Type.GetType("System.String"));
            var employeeSalaryColumn   = new DataColumn("Salary", Type.GetType("System.Double"));

            employeeTable.Columns.AddRange(new DataColumn[]
            {
                employeeIdColumn,
                employeeFullNameColumn,
                employeeSalaryColumn
            });
            employeeTable.PrimaryKey = new DataColumn[] { employeeIdColumn };

            var productTable    = dataSet.Tables.Add("Products");
            var productIdColumn = new DataColumn("Id", Type.GetType("System.Int32"));

            productIdColumn.ReadOnly          = true;
            productIdColumn.AutoIncrement     = true;
            productIdColumn.AutoIncrementSeed = 1;
            productIdColumn.AutoIncrementStep = 1;
            productIdColumn.AllowDBNull       = false;

            var productNameColumn = new DataColumn("Name", Type.GetType("System.String"));

            productNameColumn.AllowDBNull = false;
            var producPriceColumn = new DataColumn("Price", Type.GetType("System.Int32"));

            producPriceColumn.AllowDBNull = false;
            productTable.Columns.AddRange(new DataColumn[]
            {
                productIdColumn,
                productNameColumn,
                producPriceColumn
            });
            productTable.PrimaryKey = new DataColumn[] { productIdColumn };

            var orderTable    = dataSet.Tables.Add("Orders");
            var orderIdColumn = new DataColumn("Id", Type.GetType("System.Int32"));

            orderIdColumn.ReadOnly          = true;
            orderIdColumn.AutoIncrement     = true;
            orderIdColumn.AutoIncrementSeed = 1;
            orderIdColumn.AutoIncrementStep = 1;
            orderIdColumn.AllowDBNull       = false;

            var orderDateColumn          = new DataColumn("Date", Type.GetType("System.DateTime"));
            var orderSummaColumn         = new DataColumn("Summa", Type.GetType("System.Double"));
            var orderCustomerIdColumn    = new DataColumn("CustomerId", Type.GetType("System.Int32"));
            var orderOrderDetailIdColumn = new DataColumn("OrderDetailId", Type.GetType("System.Int32"));
            var orderProductIdColumn     = new DataColumn("ProductId", Type.GetType("System.Int32"));
            var orderEmployeeIdColumn    = new DataColumn("EmployeeId", Type.GetType("System.Int32"));

            orderTable.Columns.AddRange(new DataColumn[]
            {
                orderIdColumn,
                orderDateColumn,
                orderSummaColumn,
                orderProductIdColumn,
                orderOrderDetailIdColumn,
                orderCustomerIdColumn,
                orderEmployeeIdColumn
            });
            orderTable.PrimaryKey = new DataColumn[] { orderIdColumn };

            var orderDetailTable    = dataSet.Tables.Add("OrderDetails");
            var orderDetailIdColumn = new DataColumn("Id", Type.GetType("System.Int32"));

            orderDetailIdColumn.ReadOnly          = true;
            orderDetailIdColumn.AutoIncrement     = true;
            orderDetailIdColumn.AutoIncrementSeed = 1;
            orderDetailIdColumn.AutoIncrementStep = 1;
            orderDetailIdColumn.AllowDBNull       = false;

            var orderDetailDescriptionColumn = new DataColumn("Description", Type.GetType("System.String"));

            orderDetailTable.Columns.AddRange(new DataColumn[]
            {
                orderDetailIdColumn,
                orderDetailDescriptionColumn
            });
            orderDetailTable.PrimaryKey = new DataColumn[] { orderDetailIdColumn };

            var customerTable    = dataSet.Tables.Add("Customers");
            var customerIdColumn = new DataColumn("Id", Type.GetType("System.Int32"));

            customerIdColumn.ReadOnly          = true;
            customerIdColumn.AutoIncrement     = true;
            customerIdColumn.AutoIncrementSeed = 1;
            customerIdColumn.AutoIncrementStep = 1;
            customerIdColumn.AllowDBNull       = false;

            var customeFullNameColumn = new DataColumn("FullName", Type.GetType("System.String"));
            var customerPhoneColumn   = new DataColumn("Phone", Type.GetType("System.String"));

            customerTable.Columns.AddRange(new DataColumn[]
            {
                customerIdColumn,
                customeFullNameColumn,
                customerPhoneColumn
            });
            customerTable.PrimaryKey = new DataColumn[] { customerIdColumn };

            dataSet.AcceptChanges();
        }
Пример #36
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            int count = 0;

            Guid[] warehouseZonesIds = new Guid[] { };
            if (this.comboBox1.SelectedIndex != -1)
            {
                warehouseZonesIds = new Guid[] { Guid.Parse(comboBox1.SelectedValue.ToString()) };
            }
            string msg = String.Empty;

            bool combine = BatchCombineCheck.Checked;

            this.dataGridView1.EndEdit();
            try
            {
                List <object> list = new List <object>();

                System.Data.SqlClient.SqlConnection oleConnection = new System.Data.SqlClient.SqlConnection(sql);
                oleConnection.Open();
                DataSet dsSql = new DataSet();
                System.Data.SqlClient.SqlDataAdapter oa = new System.Data.SqlClient.SqlDataAdapter("select * from StorageChecking", oleConnection);

                oa.Fill(dsSql);
                System.Data.SqlClient.SqlCommandBuilder scb = new System.Data.SqlClient.SqlCommandBuilder(oa);

                dtn = dsSql.Tables[0];
                DateTime date = DateTime.Now;
                int      j    = dtn.Rows.Count;
                if (dataGridView1.Rows.Count == 0)
                {
                    MessageBox.Show("尚未查询当前库存情况,记录为空!");
                    return;
                }
                var dtnGroup = from i in dtn.AsEnumerable()
                               group i by new { t1 = i.Field <string>("DocumentNum") } into g
                    select new {
                    DocNo = g.FirstOrDefault().Field <string>("DocumentNum").ToString()
                };
                if (dtnGroup != null)
                {
                    foreach (var item in dtnGroup.ToList())
                    {
                        if (item.DocNo.Contains(DocNum))
                        {
                            if (MessageBox.Show("本月已做过盘存操作,如果你需要重新盘存,本月原盘存记录将被清除!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
                            {
                                oleConnection = new System.Data.SqlClient.SqlConnection(sql);
                                oleConnection.Open();
                                System.Data.SqlClient.SqlCommand sqlCommand = new System.Data.SqlClient.SqlCommand();
                                sqlCommand.Connection  = oleConnection;
                                sqlCommand.CommandText = "delete from StorageChecking where DocumentNum LIKE  '%" + DocNum + "%'";
                                sqlCommand.ExecuteNonQuery();
                                MessageBox.Show("本月旧盘存记录清除完成!");
                                return;
                            }
                            else
                            {
                                dataGridView1.DataSource = null;
                                return;
                            }
                        }
                    }
                }


                foreach (DataGridViewRow r in this.dataGridView1.Rows)
                {
                    if (Convert.ToDecimal(r.Cells["colRealAmount"].Value) == 0)
                    {
                        count++;
                        r.Cells["colRealAmount"].Style.BackColor = Color.Red;
                    }
                    string   pName          = r.Cells[0].Value.ToString();
                    string   gg             = r.Cells[1].Value.ToString();
                    string   unit           = r.Cells[2].Value.ToString();
                    string   pNumber        = r.Cells[3].Value.ToString();
                    string   pFactory       = r.Cells[4].Value == null ? "无" : r.Cells[4].Value.ToString();
                    string   origin         = r.Cells[5].Value == null ? "无" : r.Cells[5].Value.ToString();
                    string   batchNumber    = r.Cells[6].Value == null ? "无" : r.Cells[6].Value.ToString();
                    DateTime pDate          = Convert.ToDateTime(r.Cells[7].Value);
                    DateTime validDate      = Convert.ToDateTime(r.Cells[8].Value);
                    decimal  purchasePrice  = Convert.ToDecimal(r.Cells[9].Value);
                    decimal  canUsed        = Convert.ToDecimal(r.Cells[10].Value);
                    decimal  currentIn      = Convert.ToDecimal(r.Cells[11].Value);
                    decimal  money          = Convert.ToDecimal(r.Cells[12].Value);
                    decimal  realAmount     = r.Cells[13].Value == null? 0m:Convert.ToDecimal(r.Cells[13].Value);
                    decimal  dismaindAmount = canUsed - realAmount;
                    DateTime dtime          = DateTime.Now;
                    string   documentNum    = "PCD" + DocNum;
                    string   opuser         = AppClientContext.CurrentUser.Employee.Name;
                    string   wh             = r.Cells["Column3"].Value.ToString();

                    DataRow dr = dtn.NewRow();
                    dr[0]  = j++;
                    dr[1]  = pName.ToString();
                    dr[2]  = gg;
                    dr[3]  = unit;
                    dr[4]  = pNumber;
                    dr[5]  = pFactory;
                    dr[6]  = origin;
                    dr[7]  = batchNumber;
                    dr[8]  = pDate;
                    dr[9]  = validDate;
                    dr[10] = purchasePrice;
                    dr[11] = canUsed;
                    dr[12] = money;
                    dr[13] = currentIn;
                    dr[14] = realAmount;
                    dr[15] = canUsed - realAmount;
                    dr[16] = dtime;
                    dr[17] = documentNum;
                    dr[18] = opuser;
                    dr[19] = wh;

                    dtn.Rows.Add(dr);
                }
                DataTable dty = new DataTable();
                if (count > 0)
                {
                    if (MessageBox.Show("有实盘数据为0,是否继续保存?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
                    {
                        oa.Update(dtn);
                        dsSql.AcceptChanges();
                        count = 0;
                        MessageBox.Show("保存成功,损溢数量将自动计算。\n\r请注意:若有药品损溢情况,请申报损溢并审批!");
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    oa.Update(dtn);
                    dsSql.AcceptChanges();
                    count = 0;
                    MessageBox.Show("保存成功,损溢数量将自动计算。\n\r请注意:若有药品损溢情况,请申报损溢并审批!");
                }

                oleConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("操作失败!");
            }
        }
Пример #37
0
        public void Test2()
        {
            DataSet RegionDS = new DataSet();
            DataRow RegionRow;
            RegionDS.ReadXmlSchema(new StringReader(RegionXsd));
            Assert.Equal(1, RegionDS.Tables.Count);
            XmlDataDocument DataDoc = new XmlDataDocument(RegionDS);
            DataDoc.Load(new StringReader(RegionXml));

            RegionRow = RegionDS.Tables[0].Rows[0];

            RegionDS.AcceptChanges();
            RegionRow["RegionDescription"] = "Reeeeeaalllly Far East!";
            RegionDS.AcceptChanges();

            TextWriter text = new StringWriter();
            text.NewLine = "\n";
            DataDoc.Save(text);
            string TextString = text.ToString();
            string substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);

            //Assert.Equal ("<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?>", substring);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.Equal("<Root>", substring);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  <Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionID>1</RegionID>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.Equal("    <RegionDescription>Reeeeeaalllly Far East!</RegionDescription>", substring);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  </Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  <Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionID>2</RegionID>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionDescription>Western") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("   </RegionDescription>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  </Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  <Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionID>3</RegionID>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionDescription>Northern") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("   </RegionDescription>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  </Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  <Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionID>4</RegionID>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <RegionDescription>Southern") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("   </RegionDescription>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  </Region>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  <MoreData>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <Column1>12</Column1>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <Column2>Hi There</Column2>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  </MoreData>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  <MoreData>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <Column1>12</Column1>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("    <Column2>Hi There</Column2>") != -1);

            substring = TextString.Substring(0, TextString.IndexOf(s_EOL));
            TextString = TextString.Substring(TextString.IndexOf(s_EOL) + s_EOL.Length);
            Assert.True(substring.IndexOf("  </MoreData>") != -1);
        }
Пример #38
0
        /// <summary>
        /// 添加或更新邮件通知参数
        /// </summary>
        /// <param name="session"></param>
        /// <param name="lstParams"></param>
        /// lstParams[0] : 是否启用邮件通知
        /// lstParams[1] : SMTP
        /// lstParams[2] : SMTP Port
        /// lstParams[3] : 需要SSL
        /// lstParams[4] : 账号
        /// lstParams[5] : 密码
        /// lstParams[6] : 需要身份认证
        /// lstParams[7] : Email Address
        /// <returns></returns>
        private OperationReturn UpdateEmailInfo(SessionInfo session, List <string> lstParams)
        {
            OperationReturn optReturn = new OperationReturn();

            try
            {
                string rentToken = session.RentInfo.Token;
                string strSql    = string.Empty;

                lstParams[5] = S2400EncryptOperation.EncryptWithM002(lstParams[5]);

                IDbConnection    objConn       = null;
                IDbDataAdapter   objAdapter    = null;
                DbCommandBuilder objCmdBuilder = null;

                switch (session.DBType)
                {
                case 2:
                    strSql    = string.Format("SELECT * FROM T_11_001_{0} WHERE C001 = '{1}' and C002 =24 and C004  = 24041 ORDER BY C005", rentToken, session.RentID);
                    optReturn = MssqlOperation.GetDataSet(session.DBConnectionString, strSql);
                    if (!optReturn.Result)
                    {
                        return(optReturn);
                    }
                    objConn       = MssqlOperation.GetConnection(session.DBConnectionString);
                    objAdapter    = MssqlOperation.GetDataAdapter(objConn, strSql);
                    objCmdBuilder = MssqlOperation.GetCommandBuilder(objAdapter);
                    break;

                case 3:
                    strSql    = string.Format("SELECT * FROM T_11_001_{0} WHERE C001 = '{1}' AND C002 =24 AND C004  = 24041  ORDER BY C005", rentToken, session.RentID);
                    optReturn = OracleOperation.GetDataSet(session.DBConnectionString, strSql);
                    if (!optReturn.Result)
                    {
                        return(optReturn);
                    }
                    objConn       = OracleOperation.GetConnection(session.DBConnectionString);
                    objAdapter    = OracleOperation.GetDataAdapter(objConn, strSql);
                    objCmdBuilder = OracleOperation.GetCommandBuilder(objAdapter);
                    break;
                }

                if (objConn == null || objAdapter == null || objCmdBuilder == null)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_OBJECT_NULL;
                    optReturn.Message = string.Format("Db object is null");
                    return(optReturn);
                }

                objCmdBuilder.ConflictOption = ConflictOption.OverwriteChanges;
                objCmdBuilder.SetAllValues   = false;
                DataSet objDataSet = new DataSet();
                objAdapter.Fill(objDataSet);

                List <string> listMsg = new List <string>();
                if (lstParams[0] == "0")
                {
                    DataRow[] drs = objDataSet.Tables[0].Select("c003 = 240401");
                    if (drs.Count() > 0)
                    {
                        drs[0]["C006"] = lstParams[0];
                        drs[0]["C018"] = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");
                        drs[0]["C019"] = session.UserID;
                        listMsg.Add("Update Email Enable : 0");
                    }
                }
                else
                {
                    for (int i = 0; i < lstParams.Count; i++)
                    {
                        string    strParamID = "24040" + (i + 1);
                        DataRow[] drs        = objDataSet.Tables[0].Select(string.Format("c003 = {0}", strParamID));
                        //如果存在 则修改
                        if (drs.Count() > 0)
                        {
                            drs[0]["C006"] = lstParams[i];
                            drs[0]["C018"] = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");
                            drs[0]["C019"] = session.UserID;
                            listMsg.Add(string.Format("Update {0}", lstParams[i]));
                        }
                        //如果不存在 则插入
                        else
                        {
                            DataRow row = objDataSet.Tables[0].NewRow();
                            row["C001"] = session.RentID;
                            row["C002"] = 24;
                            row["C003"] = "24040" + (i + 1);
                            row["C004"] = "24041";
                            row["C005"] = i;
                            row["C006"] = lstParams[i];
                            row["C007"] = 13;
                            row["C009"] = 0;
                            row["C010"] = 0;
                            row["C011"] = 0;
                            row["C015"] = 0;
                            row["C018"] = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");
                            row["C019"] = session.UserID;
                            row["C020"] = -1;
                            row["C021"] = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");
                            objDataSet.Tables[0].Rows.Add(row);
                            listMsg.Add(string.Format("Add {0}", lstParams[i]));
                        }
                    }
                }

                objAdapter.Update(objDataSet);
                objDataSet.AcceptChanges();
                optReturn.Data = listMsg;


                optReturn.Result = true;
                optReturn.Code   = Defines.RET_SUCCESS;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }
Пример #39
0
        public void WriteXmlSchema2()
        {
            string xml = @"<myDataSet xmlns='NetFrameWork'><myTable><id>0</id><item>item 0</item></myTable><myTable><id>1</id><item>item 1</item></myTable><myTable><id>2</id><item>item 2</item></myTable><myTable><id>3</id><item>item 3</item></myTable><myTable><id>4</id><item>item 4</item></myTable><myTable><id>5</id><item>item 5</item></myTable><myTable><id>6</id><item>item 6</item></myTable><myTable><id>7</id><item>item 7</item></myTable><myTable><id>8</id><item>item 8</item></myTable><myTable><id>9</id><item>item 9</item></myTable></myDataSet>";
            string schema = @"<?xml version='1.0' encoding='utf-16'?>
<xs:schema id='myDataSet' targetNamespace='NetFrameWork' xmlns:mstns='NetFrameWork' xmlns='NetFrameWork' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' attributeFormDefault='qualified' elementFormDefault='qualified'>
  <xs:element name='myDataSet' msdata:IsDataSet='true' " +
            "msdata:UseCurrentLocale='true'"
            + @">
    <xs:complexType>
      <xs:choice minOccurs='0' maxOccurs='unbounded'>
        <xs:element name='myTable'>
          <xs:complexType>
            <xs:sequence>
              <xs:element name='id' msdata:AutoIncrement='true' type='xs:int' minOccurs='0' />
              <xs:element name='item' type='xs:string' minOccurs='0' />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>";
            DataSet OriginalDataSet = new DataSet("myDataSet");
            OriginalDataSet.Namespace = "NetFrameWork";
            DataTable myTable = new DataTable("myTable");
            DataColumn c1 = new DataColumn("id", typeof(int));
            c1.AutoIncrement = true;
            DataColumn c2 = new DataColumn("item");
            myTable.Columns.Add(c1);
            myTable.Columns.Add(c2);
            OriginalDataSet.Tables.Add(myTable);
            // Add ten rows.
            DataRow newRow;
            for (int i = 0; i < 10; i++)
            {
                newRow = myTable.NewRow();
                newRow["item"] = "item " + i;
                myTable.Rows.Add(newRow);
            }
            OriginalDataSet.AcceptChanges();

            StringWriter sw = new StringWriter();
            XmlTextWriter xtw = new XmlTextWriter(sw);
            xtw.QuoteChar = '\'';
            OriginalDataSet.WriteXml(xtw);
            string result = sw.ToString();

            Assert.Equal(xml, result);

            sw = new StringWriter();
            xtw = new XmlTextWriter(sw);
            xtw.Formatting = Formatting.Indented;
            OriginalDataSet.WriteXmlSchema(xtw);
            result = sw.ToString();

            result = result.Replace("\r\n", "\n").Replace('"', '\'');
            Assert.Equal(schema.Replace("\r\n", "\n"), result);
        }
Пример #40
0
        public override void Open()
        {
            if (IsOpened)
            {
                return;
            }

            // make table
            if (Table == null)
            {
                if (Adapter == null)
                {
                    if (string.IsNullOrEmpty(_XmlFile))
                    {
                        throw new RuntimeException("Table, adapter, or file is not defined.");
                    }

                    // dataset
                    var ds = new DataSet();
                    ds.Locale = CultureInfo.CurrentCulture;                     // CA

                    // read schema
                    if (!string.IsNullOrEmpty(XmlSchema))
                    {
                        ds.ReadXmlSchema(XmlSchema);
                    }

                    // read data
                    ds.ReadXml(_XmlFile, XmlReadMode);
                    _XmlFileTime = File.GetLastWriteTime(_XmlFile);

                    // accept data
                    ds.AcceptChanges();

                    // table
                    Table = GetTable(ds, TableName);
                }
                else
                {
                    if (Adapter.SelectCommand == null)
                    {
                        throw new RuntimeException("Adapter select command is null.");
                    }

                    Table        = new DataTable();
                    Table.Locale = CultureInfo.CurrentCulture;                     // CA
                }
            }

            // fill and drop the flag avoiding 2nd call on opening
            Fill();
            NeedsNewFiles = false;

            // pass 1: collect the columns
            IList <Meta> metas;

            if (Columns == null)
            {
                // collect/filter table columns to be shown
                int Count = Math.Min(Table.Columns.Count, Settings.Default.MaximumPanelColumnCount);
                metas = new List <Meta>(Count);
                int nCollected = 0;
                foreach (DataColumn column in Table.Columns)
                {
                    // skip hidden not calculated columns
                    if (column.ColumnMapping == MappingType.Hidden && column.Expression.Length == 0)
                    {
                        continue;
                    }

                    // skip not linear data
                    if (!Converter.IsLinearType(column.DataType))
                    {
                        continue;
                    }

                    // infer column meta data
                    Meta meta = new Meta(column.ColumnName);
                    meta.Kind = FarColumn.DefaultColumnKinds[nCollected];
                    metas.Add(meta);
                    ++nCollected;
                    if (nCollected >= Count)
                    {
                        break;
                    }
                }
            }
            else
            {
                // setup user defined columns
                metas = Format.SetupColumns(Columns);
            }

            // at least one column
            if (metas.Count == 0)
            {
                throw new InvalidOperationException("There is no column to display.");
            }

            // pass 2: mapping
            foreach (Meta meta in metas)
            {
                DataColumn column = Table.Columns[meta.Property];

                switch (meta.Kind[0])
                {
                case 'N':
                    Map.Name = column.Ordinal;
                    break;

                case 'O':
                    Map.Owner = column.Ordinal;
                    break;

                case 'Z':
                    Map.Description = column.Ordinal;
                    break;

                case 'C':
                    Map.Columns.Add(column.Ordinal);
                    break;

                case 'S':
                {
                    if (Map.Length >= 0)
                    {
                        throw new InvalidOperationException("Column 'S' is used twice.");
                    }
                    Map.Length = column.Ordinal;
                }
                break;

                case 'D':
                {
                    if (meta.Kind.Length < 2)
                    {
                        throw new InvalidOperationException(Res.InvalidColumnKind + "D");
                    }

                    switch (meta.Kind[1])
                    {
                    case 'C':
                    {
                        if (Map.CreationTime >= 0)
                        {
                            throw new InvalidOperationException("Column 'DC' is used twice.");
                        }

                        Map.CreationTime = column.Ordinal;
                    }
                    break;

                    case 'M':
                    {
                        if (Map.LastWriteTime >= 0)
                        {
                            throw new InvalidOperationException("Column 'DM' is used twice.");
                        }

                        Map.LastWriteTime = column.Ordinal;
                    }
                    break;

                    case 'A':
                    {
                        if (Map.LastAccessTime >= 0)
                        {
                            throw new InvalidOperationException("Column 'DA' is used twice.");
                        }

                        Map.LastAccessTime = column.Ordinal;
                    }
                    break;

                    default:
                        throw new InvalidOperationException(Res.InvalidColumnKind + meta.Kind);
                    }
                }
                break;

                default:
                    throw new InvalidOperationException(Res.InvalidColumnKind + meta.Kind);
                }
            }

            // pass 3: set plan
            SetPlan(PanelViewMode.AlternativeFull, Format.SetupPanelMode(metas));

            base.Open();
        }
Пример #41
0
        public void WriteXmlSchema4()
        {
            string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
<xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
";
            xmlschema = xmlschema + "  <xs:element name=\"Example\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\"";
            xmlschema = xmlschema + @">
    <xs:complexType>
      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
        <xs:element name=""MyType"">
          <xs:complexType>
            <xs:attribute name=""ID"" type=""xs:int"" use=""required"" />
            <xs:attribute name=""Desc"" type=""xs:string"" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>";
            DataSet ds = new DataSet("Example");

            // Add MyType DataTable
            DataTable dt = new DataTable("MyType");
            ds.Tables.Add(dt);

            dt.Columns.Add(new DataColumn("ID", typeof(int), "",
                MappingType.Attribute));
            dt.Columns["ID"].AllowDBNull = false;

            dt.Columns.Add(new DataColumn("Desc", typeof
                (string), "", MappingType.Attribute));

            ds.AcceptChanges();

            StringWriter sw = new StringWriter();
            ds.WriteXmlSchema(sw);

            string result = sw.ToString();

            Assert.Equal(result.Replace("\r\n", "\n"), xmlschema.Replace("\r\n", "\n"));
        }
Пример #42
0
        private DataSet f_Get_Data()
        {
            DataSet ads = null;

            try
            {
                string asql = "", aexp = "", auserid = "", aquyenso = "", aloaibn = "", aloaidv = "";
                auserid  = f_Getchecked(dgUser);
                aquyenso = f_Getchecked(dgSo);
                aloaibn  = f_Getchecked(dgLoaibn);
                aloaidv  = f_Getchecked(dgLoaidv);

                aexp = "to_date(to_char(a.ngay,'dd/mm/yyyy'),'dd/mm/yyyy')>=to_date('" + txtTN.Text.Substring(0, 10) + "','dd/mm/yyyy') and to_date(to_char(a.ngay,'dd/mm/yyyy'),'dd/mm/yyyy') <= to_date('" + txtDN.Text.Substring(0, 10) + "','dd/mm/yyyy')";
                if (auserid != "")
                {
                    aexp += " and a.userid in (" + auserid + ")";
                }
                if (aquyenso != "")
                {
                    aexp += " and a.quyenso in (" + aquyenso + ")";
                }
                if (aloaidv != "")
                {
                    aexp += " and a.loai in (" + aloaidv + ")";
                }
                if (aloaibn != "")
                {
                    aexp += " and a.loaibn in (" + aloaibn + ")";
                }
                // them dk checkbox thu truc tiep, tam ung, thanh toan ra vien// ok
                string str_c = "";
                if (chkTT.Checked)
                {
                    str_c = "'1',";
                }
                if (chkTTRV.Checked)
                {
                    str_c += "'3',";                 //if (chkTTRV.Checked) str_c += "'2',";
                }
                if (chkTU.Checked)
                {
                    str_c += "'2',";                //if (chkTU.Checked) str_c += "'3',";
                }
                if (chkTT.Checked || chkTTRV.Checked || chkTU.Checked)
                {
                    aexp += " and a.ghichu in (" + str_c.Trim().Trim(',') + ")"; //aexp += " and a.ghichu in (" + str_c.Substring(0, str_c.Length - 1) + ")";
                }
                //
                if (rdBC_02.Checked)
                {
                    aexp += " and to_char(a.ngay,'dd/mm/yyyy') = to_char(a.ngayud,'dd/mm/yyyy')";
                }
                else
                if (rdBC_03.Checked)
                {
                    aexp += " and to_char(a.ngay,'dd/mm/yyyy') <> to_char(a.ngayud,'dd/mm/yyyy')";
                }

                aexp = "where " + aexp.Trim();
                asql = "select a.id,a.quyenso,b.sohieu,b.sohieubl,a.sobienlai,a.sotien,to_char(a.ngay,'dd/mm/yyyy') as ngay, case when to_date(to_char(a.ngayud,'dd/mm/yyyy'),'dd/mm/yyyy') < to_date(to_char(a.ngay,'dd/mm/yyyy'),'dd/mm/yyyy') then to_char(a.ngayud,'dd/mm/yyyy') else to_char(a.ngay,'dd/mm/yyyy') end as ngaythu,a.mabn,d.hoten,d.namsinh, trim(d.sonha||' '||d.thon) as diachi, a.mavaovien,a.maql,a.loai,a.loaibn,a.userid, c.userid as user_userid, c.hoten as user_hoten,trim(a.ghichu) as ghichu from medibvmmyy.v_hoantra a left join medibv.v_quyenso b on a.quyenso=b.id and b.hide=0 left join medibv.v_dlogin c on a.userid=c.id left join medibv.btdbn d on a.mabn=d.mabn " + aexp + " order by a.ngay";
                ads  = m_v.get_data_mmyy(asql, txtTN.Text.Substring(0, 10), txtDN.Text.Substring(0, 10), true);
                //
                try { ads.Tables[0].Columns.Add("BHYTTra", typeof(decimal)).DefaultValue = 0; }
                catch { }
                try { ads.Tables[0].Columns.Add("BNTra", typeof(decimal)).DefaultValue = 0; }
                catch { }
                if (chkBHYTTraBnTra.Checked)
                {
                    string s_tu = m_v.StringToDate(txtTN.Text).AddDays(-7).ToString("dd/MM/yyyy");
                    asql  = "select a.mabn, b.quyenso, b.sobienlai, sum(c.bhyttra) as bhyttra, sum(c.sotien-c.bhyttra) as bntra";
                    asql += " from medibvmmyy.v_ttrvds a inner join medibvmmyy.v_ttrvll b on a.id=b.id inner join medibvmmyy.v_ttrvct c on b.id=c.id ";
                    asql += " where c.idtra<>0";
                    asql += " and to_date(to_char(b.ngay,'dd/mm/yyyy'),'dd/mm/yyyy') between to_date('" + s_tu + "','dd/mm/yyyy') and to_date('" + txtDN.Text + "','dd/mm/yyyy')";
                    asql += " group by a.mabn, b.quyenso, b.sobienlai ";

                    DataSet ads1 = m_v.get_data_mmyy(asql, s_tu.Substring(0, 10), txtDN.Text.Substring(0, 10), true);
                    if (ads1 != null && ads1.Tables.Count > 0 && ads1.Tables[0].Rows.Count > 0)
                    {
                        DataRow dr2;
                        foreach (DataRow dr in ads1.Tables[0].Rows)
                        {
                            dr2 = m_v.getrowbyid(ads.Tables[0], "mabn='" + dr["mabn"].ToString() + "' and quyenso=" + dr["quyenso"].ToString() + " and sobienlai=" + dr["sobienlai"].ToString());
                            if (dr2 != null)
                            {
                                dr2["BHYTTra"] = dr["bhyttra"].ToString();
                                dr2["BNTra"]   = dr["bntra"].ToString();
                            }
                        }
                        ads.AcceptChanges();
                    }
                }
                //
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return(ads);
        }
Пример #43
0
        public void WriteXmlSchema6()
        {
            string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
<xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
" +
              @"  <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:UseCurrentLocale=""true"""
              + @">
    <xs:complexType>
      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
        <xs:element name=""MyType"">
          <xs:complexType>
            <xs:attribute name=""Desc"">
              <xs:simpleType>
                <xs:restriction base=""xs:string"">
                  <xs:maxLength value=""32"" />
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>";
            DataSet ds = new DataSet("Example");

            // Add MyType DataTable
            ds.Tables.Add("MyType");

            ds.Tables["MyType"].Columns.Add(new DataColumn(
                "Desc", typeof(string), "", MappingType.Attribute));
            ds.Tables["MyType"].Columns["Desc"].MaxLength = 32;

            ds.AcceptChanges();

            StringWriter sw = new StringWriter();
            ds.WriteXmlSchema(sw);

            string result = sw.ToString();

            Assert.Equal(result.Replace("\r\n", "\n"), xmlschema.Replace("\r\n", "\n"));
        }
Пример #44
0
        protected virtual DataSet PrepareDataSet(DataSet questDataSet, string scriptPath)
        {
            DataSet dataSet = questDataSet.Copy();


            foreach (DataRow quest in dataSet.Tables[DB.TABLE_QUEST].Rows)
            {
                quest[DB.COL_QUEST_DESCRIPTION] = Utils.Escape(quest[DB.COL_QUEST_DESCRIPTION]);
                quest[DB.COL_QUEST_NAME]        = Utils.Escape(quest[DB.COL_QUEST_NAME]);
                quest[DB.COL_QUEST_TITLE]       = Utils.Escape(quest[DB.COL_QUEST_TITLE]);
            }

            foreach (DataRow questStep in dataSet.Tables[DB.TABLE_QUESTSTEP].Rows)
            {
                questStep[DB.COL_QUESTSTEP_DESCRIPTION] = Utils.Escape(questStep[DB.COL_QUESTSTEP_DESCRIPTION]);
            }

            String invitingNPC = (string)dataSet.Tables[DB.TABLE_QUEST].Rows[0][DB.COL_QUEST_INVITINGNPC];

            // check for string parameter in action, trigger, requirement and add needed ",'
            foreach (DataRow row in dataSet.Tables[DB.TABLE_QUESTPARTTRIGGER].Rows)
            {
                row[DB.COL_QUESTPARTTRIGGER_TYPENAME] = typeof(eTriggerType).Name + "." + Enum.GetName(typeof(eTriggerType), row[DB.COL_QUESTPARTTRIGGER_TYPE]);

                string    triggerType = Convert.ToString(row[DB.COL_QUESTPARTTRIGGER_TYPE]);
                DataRow[] triggerRows = DB.TriggerTypeTable.Select(DB.COL_TRIGGERTYPE_ID + "=" + triggerType + "");
                if (triggerRows.Length != 1)
                {
                    throw new QuestPartConfigurationException("No or multiple Triggertypes found for " + triggerType);
                }

                string k = Convert.ToString(triggerRows[0][DB.COL_TRIGGERTYPE_K]);
                row[DB.COL_QUESTPARTTRIGGER_K] = PrepareValue(dataSet, row[DB.COL_QUESTPARTTRIGGER_K], k);

                string i = Convert.ToString(triggerRows[0][DB.COL_TRIGGERTYPE_I]);
                row[DB.COL_QUESTPARTTRIGGER_I] = PrepareValue(dataSet, row[DB.COL_QUESTPARTTRIGGER_I], i);
            }

            foreach (DataRow row in dataSet.Tables[DB.TABLE_QUESTPARTREQUIREMENT].Rows)
            {
                row[DB.COL_QUESTPARTREQUIREMENT_TYPENAME] = typeof(eRequirementType).Name + "." + Enum.GetName(typeof(eRequirementType), row[DB.COL_QUESTPARTREQUIREMENT_TYPE]);

                string    requType = Convert.ToString(row[DB.COL_QUESTPARTREQUIREMENT_TYPE]);
                DataRow[] requRows = DB.RequirementTypeTable.Select(DB.COL_REQUIREMENTTYPE_ID + "=" + requType + "");
                if (requRows.Length != 1)
                {
                    throw new QuestPartConfigurationException("No or multiple Requirementtypes found for " + requType);
                }

                string n = Convert.ToString(requRows[0][DB.COL_REQUIREMENTTYPE_N]);
                row[DB.COL_QUESTPARTREQUIREMENT_N] = PrepareValue(dataSet, row[DB.COL_QUESTPARTREQUIREMENT_N], n);

                string v = Convert.ToString(requRows[0][DB.COL_REQUIREMENTTYPE_V]);
                row[DB.COL_QUESTPARTREQUIREMENT_V] = PrepareValue(dataSet, row[DB.COL_QUESTPARTREQUIREMENT_V], v);
            }

            foreach (DataRow row in dataSet.Tables[DB.TABLE_QUESTPARTACTION].Rows)
            {
                row[DB.COL_QUESTPARTACTION_TYPENAME] = typeof(eActionType).Name + "." + Enum.GetName(typeof(eActionType), row[DB.COL_QUESTPARTACTION_TYPE]);

                string    actionType = Convert.ToString(row[DB.COL_QUESTPARTACTION_TYPE]);
                DataRow[] actionRows = DB.ActionTypeTable.Select(DB.COL_ACTIONTYPE_ID + "=" + actionType + "");
                if (actionRows.Length != 1)
                {
                    throw new QuestPartConfigurationException("No or multiple Actiontypes found for " + actionType);
                }

                string p = Convert.ToString(actionRows[0][DB.COL_ACTIONTYPE_P]);
                row[DB.COL_QUESTPARTACTION_P] = PrepareValue(dataSet, row[DB.COL_QUESTPARTACTION_P], p);

                string q = Convert.ToString(actionRows[0][DB.COL_ACTIONTYPE_Q]);
                row[DB.COL_QUESTPARTACTION_Q] = PrepareValue(dataSet, row[DB.COL_QUESTPARTACTION_Q], q);
            }

            // find a candidate for defaultNPC
            foreach (DataRow row in dataSet.Tables[DB.TABLE_QUESTPART].Rows)
            {
                int    questPartID = (int)row[DB.COL_QUESTPART_ID];
                string defaultNPC  = invitingNPC;

                DataRow[] triggerRows = dataSet.Tables[DB.TABLE_QUESTPARTTRIGGER].Select(DB.COL_QUESTPARTTRIGGER_QUESTPARTID + "=" + questPartID);
                foreach (DataRow triggerRow in triggerRows)
                {
                    if (DB.isMobName(triggerRow[DB.COL_QUESTPARTTRIGGER_I]))
                    {
                        defaultNPC = (string)triggerRow[DB.COL_QUESTPARTTRIGGER_I];
                        break;
                    }
                    else if (DB.isMobName(triggerRow[DB.COL_QUESTPARTTRIGGER_K]))
                    {
                        defaultNPC = (string)triggerRow[DB.COL_QUESTPARTTRIGGER_K];
                        break;
                    }
                }

                DataRow[] requRows = dataSet.Tables[DB.TABLE_QUESTPARTREQUIREMENT].Select(DB.COL_QUESTPARTREQUIREMENT_QUESTPARTID + "=" + questPartID);
                foreach (DataRow requRow in requRows)
                {
                    if (DB.isMobName(requRow[DB.COL_QUESTPARTREQUIREMENT_N]))
                    {
                        defaultNPC = (string)requRow[DB.COL_QUESTPARTREQUIREMENT_N];
                        break;
                    }
                    else if (DB.isMobName(requRow[DB.COL_QUESTPARTREQUIREMENT_V]))
                    {
                        defaultNPC = (string)requRow[DB.COL_QUESTPARTREQUIREMENT_V];
                        break;
                    }
                }

                DataRow[] actionRows = dataSet.Tables[DB.TABLE_QUESTPARTACTION].Select(DB.COL_QUESTPARTACTION_QUESTPARTID + "=" + questPartID);
                foreach (DataRow actionRow in actionRows)
                {
                    if (DB.isMobName(actionRow[DB.COL_QUESTPARTACTION_P]))
                    {
                        defaultNPC = (string)actionRow[DB.COL_QUESTPARTACTION_P];
                        break;
                    }
                    else if (DB.isMobName(actionRow[DB.COL_QUESTPARTACTION_Q]))
                    {
                        defaultNPC = (string)actionRow[DB.COL_QUESTPARTACTION_Q];
                        break;
                    }
                }

                row[DB.COL_QUESTPART_DEFAULTNPC] = defaultNPC;
            }

            // Accept all changes made
            dataSet.AcceptChanges();

            return(dataSet);
        }
Пример #45
0
        public void DeserializeModifiedDataSet()
        {
            // Serialization begins
            DataSet prevDs = new DataSet();
            DataTable dt = prevDs.Tables.Add();
            dt.Columns.Add(new DataColumn("Id", typeof(string)));

            DataRow dr = dt.NewRow();
            dr[0] = "a";
            dt.Rows.Add(dr);
            prevDs.AcceptChanges();
            dr = prevDs.Tables[0].Rows[0];
            dr[0] = "b";

            XmlSerializer serializer = new XmlSerializer(typeof(DataSet));
            StringWriter sw = new StringWriter();
            XmlTextWriter xw = new XmlTextWriter(sw);
            xw.QuoteChar = '\'';
            serializer.Serialize(xw, prevDs);

            // Deserialization begins
            StringReader sr = new StringReader(sw.ToString());
            XmlTextReader reader = new XmlTextReader(sr);
            XmlSerializer serializer1 = new XmlSerializer(typeof(DataSet));
            DataSet ds = serializer1.Deserialize(reader) as DataSet;
            Assert.Equal(
                    prevDs.Tables[0].Rows[0][0, DataRowVersion.Original].ToString(),
    ds.Tables[0].Rows[0][0, DataRowVersion.Original].ToString());
            Assert.Equal(
                    prevDs.Tables[0].Rows[0][0, DataRowVersion.Current].ToString(),
    ds.Tables[0].Rows[0][0, DataRowVersion.Current].ToString());
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            PrintPO.ordernumber = null;
            PrintPO.orderdate   = null;
            PrintPO.supplier    = null;
            PrintPO.totalamount = null;
            PrintPO.suppAddress = null;
            PrintPO.itemcode    = null;
            PrintPO.quantity    = null;
            PrintPO.description = null;
            PrintPO.unitvalue   = null;
            PrintPO.totalvalue  = null;

            if (cbSupplierName.Text == "")
            {
                MessageBox.Show("Please select a supplier", "Incomplete Purchase Order", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cbSupplierName.Focus();
                return;
            }
            if (cbLocation.Text == "")
            {
                MessageBox.Show("Please select a location", "Incomplete Purchase Order", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cbLocation.Focus();
                return;
            }
            if (dgvItemDetail.Rows[0].Cells[0].Value == null)
            {
                MessageBox.Show("Please select an item to purchase", "Incomplete Purchase Order", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            adp = new SqlDataAdapter("Select * from PurchaseOrder", con);
            ds.Clear();
            adp.Fill(ds, "PurchaseOrder");
            DataTable MyTable = ds.Tables["PurchaseOrder"];
            DataRow   newRow  = MyTable.NewRow();

            newRow[0] = lblPONumber.Text;
            newRow[1] = cbSupplierName.Text;
            newRow[2] = lblDate.Text;
            newRow[3] = "Not Received";
            newRow[4] = lblTotalValue.Text;

            //Adding new row to the table
            MyTable.Rows.Add(newRow);

            //Generating Insert Command
            SqlCommandBuilder UpdateDataCommand = new SqlCommandBuilder(adp);

            adp.InsertCommand = UpdateDataCommand.GetInsertCommand();

            //Addding row to the dataset
            adp.Update(ds, "PurchaseOrder");

            //Updating Database with the new row
            ds.AcceptChanges();

            //--Storing in 'PODetails' Table--
            int rows;

            rows = dgvItemDetail.RowCount - 1;

            // Retrieving deatils of the PoDetails Table
            SqlDataAdapter adp1 = new SqlDataAdapter("Select * from PODetails", con);
            DataSet        ds1  = new DataSet();

            ds1.Clear();
            adp1.Fill(ds1, "PODetails");

            //creating instance of the PODetails table
            DataTable MyTable1 = ds1.Tables["PODetails"];

            for (int i = 0; i < rows; i++)
            {
                DataRow newRow1 = MyTable1.NewRow();
                newRow1[0] = lblPONumber.Text;
                newRow1[1] = cbLocation.Text;
                newRow1[2] = dgvItemDetail.Rows[i].Cells["Item"].Value;
                newRow1[3] = dgvItemDetail.Rows[i].Cells["Description"].Value;
                newRow1[4] = dgvItemDetail.Rows[i].Cells["Quantity"].Value;
                newRow1[5] = dgvItemDetail.Rows[i].Cells["UnitValue"].Value;
                newRow1[6] = dgvItemDetail.Rows[i].Cells["TotalValue"].Value;

                //Adding new row to the table
                MyTable1.Rows.Add(newRow1);

                //Generating Insert Command
                SqlCommandBuilder UpdateDataCommand1 = new SqlCommandBuilder(adp1);
                adp1.InsertCommand = UpdateDataCommand1.GetInsertCommand();

                //Addding row to the dataset
                adp1.Update(ds1, "PODetails");

                //Updating Database with the new row
                ds1.AcceptChanges();
            }
            con.Close();
            MessageBox.Show("Purchase Order Details Saved");

            // Creating a print Page
            PrintPO.ordernumber = lblPONumber.Text;
            PrintPO.orderdate   = lblDate.Text;
            PrintPO.supplier    = cbSupplierName.Text;
            PrintPO.totalamount = lblTotalValue.Text;

            SqlDataAdapter adp3 = new SqlDataAdapter("Select SuppAddress from Suppliers where SuppName = '" + cbSupplierName.Text + "'", con);
            DataSet        ds3  = new DataSet();

            ds.Clear();
            adp3.Fill(ds3, "Suppliers");
            PrintPO.suppAddress = ds3.Tables["Suppliers"].Rows[0]["SuppAddress"].ToString();

            int rowcount = dgvItemDetail.RowCount;

            for (int i = 0; i < rowcount; i++)
            {
                PrintPO.itemcode    += dgvItemDetail.Rows[i].Cells["Item"].Value + Environment.NewLine;
                PrintPO.quantity    += dgvItemDetail.Rows[i].Cells["Quantity"].Value + Environment.NewLine;
                PrintPO.description += dgvItemDetail.Rows[i].Cells["Description"].Value + Environment.NewLine;
                PrintPO.unitvalue   += dgvItemDetail.Rows[i].Cells["UnitValue"].Value + Environment.NewLine;
                PrintPO.totalvalue  += dgvItemDetail.Rows[i].Cells["TotalValue"].Value + Environment.NewLine;
            }
            PrintPO ppo = new PrintPO();

            ppo.ShowDialog();

            //Resetting the Purchase Order Form
            lblTotalValue.Text = "0";
            dgvItemDetail.Rows.Clear();
            cbLocation.SelectedIndex     = -1;
            cbSupplierName.SelectedIndex = -1;
            lblPONumber.Text             = PONumber();
        }
Пример #47
0
 private void localSetup()
 {
     _ds = new DataSet("test");
     _dt1 = new DataTable("test1");
     _dt1.Columns.Add("id1", typeof(int));
     _dt1.Columns.Add("name1", typeof(string));
     //dt1.PrimaryKey = new DataColumn[] { dt1.Columns["id"] };
     _dt1.Rows.Add(new object[] { 1, "mono 1" });
     _dt1.Rows.Add(new object[] { 2, "mono 2" });
     _dt1.Rows.Add(new object[] { 3, "mono 3" });
     _dt1.AcceptChanges();
     _dt2 = new DataTable("test2");
     _dt2.Columns.Add("id2", typeof(int));
     _dt2.Columns.Add("name2", typeof(string));
     _dt2.Columns.Add("name3", typeof(string));
     //dt2.PrimaryKey = new DataColumn[] { dt2.Columns["id"] };
     _dt2.Rows.Add(new object[] { 4, "mono 4", "four" });
     _dt2.Rows.Add(new object[] { 5, "mono 5", "five" });
     _dt2.Rows.Add(new object[] { 6, "mono 6", "six" });
     _dt2.AcceptChanges();
     _ds.Tables.Add(_dt1);
     _ds.Tables.Add(_dt2);
     _ds.AcceptChanges();
 }
Пример #48
0
        // Initializing Of Fields
        public void InitializingOfFields()
        {
            //
            // Initializing Paths Of Starting Folder And Log File
            //
            string PathOfStartingFolder = System.Windows.Forms.Application.StartupPath;

            this.PathToLogFile        = PathOfStartingFolder + "\\ServerOfTransferOfPriceLists.txt";
            this.EnableScrapingLog    = true;
            this.CountOfRowsInLogFile = 1000;
            //
            this.PathToFileOfSettings = PathOfStartingFolder + "\\Settings.bin";
            //
            // Reading Settings Of Working
            //
            CurrentSettings = new DataTable("Settings");
            DataTable SettingsOfWorking = GettingSettings();

            //
            // Initializing Converting Of PriceList
            //
            try
            {
                Converting = new ConvertingOfPriceList(this.PathToLogFile);
                //
                // Settings Of ConvertingOfPriceList
                //

                /*Converting.PathToFolderOfPriceLists =
                 *  SettingsOfWorking.Rows.Find("PathToFolderOfPriceLists")["Value"].ToString();*/
                Converting.IDOfPharmacy =
                    (int)SettingsOfWorking.Rows.Find("IDOfPharmacy")["Value"];
                Converting.MaskOfFullPriceList =
                    SettingsOfWorking.Rows.Find("MaskOfFullPriceList")["Value"].ToString();
                Converting.MaskOfReceipts =
                    SettingsOfWorking.Rows.Find("MaskOfReceptionOfPriceList")["Value"].ToString();
                Converting.MaskOfDeleting =
                    SettingsOfWorking.Rows.Find("MaskOfDefectionOfPriceList")["Value"].ToString();
                //

                /*Converting.NotDeletingPriceList =
                 *  (bool)SettingsOfWorking.Rows.Find("NotDeletingPriceList")["Value"];*/
                Converting.UseOfIDOfPriceList = (bool)SettingsOfWorking.Rows.Find("UseOfIDOfPriceList")["Value"];
                //
                Converting.ShowingMessages = false;
            }
            catch (Exception E)
            {
                //
                this.RecordingInLogFile(
                    String.Format("ERROR Error At Initializaing ConvertingOfPriceList: {0}", E.Message));
            }
            //
            RecordingInLogFile("Initializing ConvertingOfPriceList");
            //
            // Initializing Reading Of Information Data For MySQL
            //
            try
            {
                Reading =
                    new Reading.ReadingOfDataForMySQL(
                        SettingsOfWorking.Rows.Find("StringOfConnection")["Value"].ToString(),
                        PathOfStartingFolder + "\\", this.PathToLogFile);
                //
                // Settings Of ReadingOfInformationDataForMySQL
                //
                Reading.ShowingMessages = false;
            }
            catch (Exception E)
            {
                //
                this.RecordingInLogFile(
                    String.Format("ERROR Error At Initializaing ReadingOfInformationDataForMySQL: {0}", E.Message));
            }
            //
            RecordingInLogFile("Initializing ReadingOfInformationDataForMySQL");
            //
            // Initializing Management Of PriceList
            //
            try
            {
                Management = new ManagementOfPriceList(
                    SettingsOfWorking.Rows.Find("StringOfConnection")["Value"].ToString(),
                    Reading, this.PathToLogFile);
                //
                // Settings Of ManagementOfPriceList
                //
                Management.LoadingPriceListIsCompleted += new ManagementOfPriceList.ReturnOfEvent(Management_LoadingPriceListIsCompleted);
                Management.ShowingMessages              = false;
                //Management.SizeOfPackageOfUpdating = 1000;
            }
            catch (Exception E)
            {
                //
                this.RecordingInLogFile(
                    String.Format("ERROR Error At Initializaing ManagementOfPriceList: {0}", E.Message));
            }
            //
            RecordingInLogFile("Initializing ManagementOfPriceList");
            //
            // Exchange FTP And Local DataBase
            //
            try
            {
                Exchange = new ExchangeFTPAndLocalDataBase(this.PathToLogFile);
                //
                // Settings Of ExchangeFTPAndLocalDataBase
                //
                Exchange.PathToArchivingProgram = PathOfStartingFolder + "\\Rar.exe";
                Exchange.PathToImportOfFTP      = SettingsOfWorking.Rows.Find("PathOfImportingData")["Value"].ToString();
                Exchange.PathToTMPFolder        = Path.GetDirectoryName(PathOfStartingFolder) + "\\TMP\\";
                Exchange.UsePassive             = (bool)SettingsOfWorking.Rows.Find("UsePassive")["Value"];
                //
                Exchange.ShowingMessages         = false;
                Exchange.IncludedShowingMessages = false;
            }
            catch (Exception E)
            {
                //
                this.RecordingInLogFile(
                    String.Format("ERROR Error At Initializaing ExchangeFTPAndLocalDataBase: {0}", E.Message));
            }
            //
            RecordingInLogFile("Initializing ExchangeFTPAndLocalDataBase");
            //
            // Transfer Of Data
            //
            try
            {
                Transfer = new TransferOfData(Converting, Management, Exchange, this.PathToLogFile);
                //
                // Settings Of TransferOfData
                //
                Transfer.DatesOfTransfer    = Reading.GettingDatesOfTransfer();
                Transfer.PathToSendLogFile  = this.PathToLogFile;
                Transfer.StringOfConnection = SettingsOfWorking.Rows.Find("StringOfConnection")["Value"].ToString();
                Transfer.IDOfDrugstore      = (int)SettingsOfWorking.Rows.Find("IDOfPharmacy")["Value"];
                //
                Transfer.ShowingMessages = false;
                //
                // Creating List Of Settings
                //
                DataSet Settings = new DataSet("SendingData");
                //
                DataTable InformationOfSettings = new DataTable("InformationOfSettings");
                InformationOfSettings.Columns.Add("Key", typeof(string));
                InformationOfSettings.Columns.Add("Value", typeof(object));
                InformationOfSettings.Rows.Add("VersionOfSettings", "1");
                InformationOfSettings.Rows.Add("VersionOfApplication", "1.5.0.0");
                Settings.Tables.Add(InformationOfSettings);
                //
                DataTable ListOfSettings = GettingSettings().Copy();;
                ListOfSettings.TableName = "ListOfSettings";
                Settings.Tables.Add(ListOfSettings);
                //
                Settings.AcceptChanges();
                //
                Transfer.Settings = Settings;
                //
            }
            catch (Exception E)
            {
                //
                this.RecordingInLogFile(
                    String.Format("ERROR Error At Initializaing TransferOfData: {0}", E.Message));
            }
            RecordingInLogFile("Initializing TransferOfData");
            //
            //Transfer.SendingLog();
        }
Пример #49
0
        public void SerializeDataSet3()
        {
            string xml = @"<?xml version=""1.0"" encoding=""utf-8""?><DataSet><xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata""><xs:element name=""Example"" msdata:IsDataSet=""true""><xs:complexType><xs:choice maxOccurs=""unbounded"" minOccurs=""0""><xs:element name=""Packages""><xs:complexType><xs:attribute name=""ID"" type=""xs:int"" use=""required"" /><xs:attribute name=""ShipDate"" type=""xs:dateTime"" /><xs:attribute name=""Message"" type=""xs:string"" /><xs:attribute name=""Handlers"" type=""xs:int"" /></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:diffgr=""urn:schemas-microsoft-com:xml-diffgram-v1""><Example><Packages diffgr:id=""Packages1"" msdata:rowOrder=""0"" ID=""0"" ShipDate=""2004-10-11T17:46:18.6962302-05:00"" Message=""Received with no breakage!"" Handlers=""3"" /><Packages diffgr:id=""Packages2"" msdata:rowOrder=""1"" ID=""1"" /></Example></diffgr:diffgram></DataSet>";

            DataSet ds = new DataSet("Example");

            // Add a DataTable
            DataTable dt = new DataTable("Packages");
            ds.Tables.Add(dt);

            // Add an ID DataColumn w/ ColumnMapping = MappingType.Attribute
            dt.Columns.Add(new DataColumn("ID", typeof(int), "",
                MappingType.Attribute));
            dt.Columns["ID"].AllowDBNull = false;

            // Add a nullable DataColumn w/ ColumnMapping = MappingType.Attribute
            dt.Columns.Add(new DataColumn("ShipDate",
                typeof(DateTime), "", MappingType.Attribute));
            dt.Columns["ShipDate"].AllowDBNull = true;

            // Add a nullable DataColumn w/ ColumnMapping = MappingType.Attribute
            dt.Columns.Add(new DataColumn("Message",
                typeof(string), "", MappingType.Attribute));
            dt.Columns["Message"].AllowDBNull = true;

            // Add a nullable DataColumn w/ ColumnMapping = MappingType.Attribute
            dt.Columns.Add(new DataColumn("Handlers",
                typeof(int), "", MappingType.Attribute));
            dt.Columns["Handlers"].AllowDBNull = true;

            // Add a non-null value row
            DataRow newRow = dt.NewRow();
            newRow["ID"] = 0;
            newRow["ShipDate"] = DateTime.Now;
            newRow["Message"] = "Received with no breakage!";
            newRow["Handlers"] = 3;
            dt.Rows.Add(newRow);

            // Add a null value row
            newRow = dt.NewRow();
            newRow["ID"] = 1;
            newRow["ShipDate"] = DBNull.Value;
            newRow["Message"] = DBNull.Value;
            newRow["Handlers"] = DBNull.Value;
            dt.Rows.Add(newRow);

            ds.AcceptChanges();

            XmlSerializer ser = new XmlSerializer(ds.GetType());
            StringWriter sw = new StringWriter();
            ser.Serialize(sw, ds);

            string result = sw.ToString();

            Assert.Equal(xml, result);
        }
Пример #50
0
        /// <summary>
        /// Consider  NR = NewerDataset.Minus(oldDataSet)
        /// NR will be any new records that weren't present in oldDataSet, but exist in NewerDataset
        ///
        /// Consider DR = oldDataSet.Minus(NewerDataset)
        /// DR will be any deleted rows that existed in oldDataset but did not appear in NewerDataset.
        /// </summary>
        /// <param name="mainDataSet"></param>
        /// <param name="subtractorDataSet"></param>
        /// <returns>If subtractorDataSet is null, this function just returns mainDataSet...</returns>
        public static DataSet Minus(this DataSet mainDataSet, DataSet subtractorDataSet)
        {
            #region Declare variables
            DataSet MainDataSet = mainDataSet.Copy();


            string   formatterText        = "";                                                        // this is used to format the svl query on the dataset    eg "{0} = {1}"
            string[] myColumnNamesAndVals = new string[subtractorDataSet.Tables[0].Columns.Count * 2]; // This needs to be refactored

            Dictionary <string, string> columnValuePairs = new Dictionary <string, string>();



            #endregion



            #region Check that function can run
            if (subtractorDataSet.Tables.Count < 1)
            {
                return(MainDataSet);
            }


            // if the two DataSets aren't comparable (ie columns don't match) then throw exception
            if (mainDataSet.Tables[0].Columns.Count != subtractorDataSet.Tables[0].Columns.Count)
            {
                throw new Exception("You attempted to compare two datasets whose first tables had a different number of columns in it. \n\nDataSet.Minus(DataSet)");
            }


            for (int i = 0; i < mainDataSet.Tables[0].Columns.Count; i++)  // check that each columns name and dataset are equal
            {
                if (mainDataSet.Tables[0].Columns[i].ColumnName != subtractorDataSet.Tables[0].Columns[i].ColumnName)
                {
                    throw new Exception("You attempted to compare two datasets whose first tables had differing column Names...  \n They must appear in the same order... \n\nDataSet.Minus(DataSet)");
                }
                if (mainDataSet.Tables[0].Columns[i].DataType != subtractorDataSet.Tables[0].Columns[i].DataType)
                {
                    throw new Exception("You attempted to compare two datasets whose first tables had differing column datatypes. \n\nDataSet.Minus(DataSet)");
                }
            }
            #endregion


            //myColumnNamesAndVals = setColumnNamesForDataArray(myColumnNamesAndVals, subtractorDataSet.Tables[0].Columns);


            for (int i = 0; i < subtractorDataSet.Tables[0].Columns.Count * 2; i = i + 2)  // Set the Column names for each column (but not their values)
            {
                myColumnNamesAndVals[i] = subtractorDataSet.Tables[0].Columns[i / 2].ColumnName;


                // " {0} = {1} AND {2} = {3} AND {4} = {5} AND {6} = {7} AND {8} = {9} AND {10} = {11} AND {12} = {13} AND {14} = {15} AND {16} = {17} AND {18} = {19} AND {20} = {21}"
                formatterText += " {" + i + "} = {" + (i + 1) + "} AND"; // this should be generated based on whether the value is null or not...
                // so done down below
            }
            formatterText = formatterText.Substring(1, formatterText.Length - 4); // nop off the final " AND"


            int rowCounter = 0;
            foreach (DataRow subtractorRow in subtractorDataSet.Tables[0].Rows)
            {
                rowCounter++;
                DataColumnCollection subtractorColumns = subtractorDataSet.Tables[0].Columns;
                // select query:  index = 1, data = bla
                List <string> nullDateOrCurrencyColumnNames = new List <string>();
                bool          doNulls = false;


                for (int i = 0; i < subtractorColumns.Count; i++)
                {
                    string rowsType = subtractorColumns[i].DataType.Name.ToLower();
                    bool   skip     = false;


                    string rowsDataAsString = "";
                    //if (((int)subtractorRow[0]) == 238967 && myColumnNamesAndVals[(i * 2)] == "Employee")
                    //    rowsDataAsString = "";


                    #region Format SQL string based on datatype  (SWITCH CASE)
                    switch (rowsType)   // Break at:  subtractorDataSet.Tables[0].Columns[0] == 238967
                    {
                    case "autoincrement":
                        rowsDataAsString = Convert.ToString(subtractorRow[i]);
                        break;

                    case "datetime":
                        if (subtractorRow[i].GetType().Name == "DBNull")
                        {
                            //throw new Exception("You have a null date field in one of your databases, and I don't know what to do to select a null date filed in a dataset.  Sry =(");
                            // Alt:
                            //
                            //rowsDataAsString = "\"\"";
                            myColumnNamesAndVals[(i * 2)]     = myColumnNamesAndVals[((i - 1) * 2)];
                            myColumnNamesAndVals[(i * 2) + 1] = myColumnNamesAndVals[((i - 1) * 2) + 1];
                            skip = true;


                            doNulls = true;
                            nullDateOrCurrencyColumnNames.Add(subtractorDataSet.Tables[0].Columns[i].ColumnName);
                        }
                        else
                        {
                            DateTime theDate = (DateTime)subtractorRow[i];
                            rowsDataAsString = "#" + theDate.ToShortDateString() + "#";
                        }
                        break;

                    case "int32":
                        rowsDataAsString = Convert.ToString(subtractorRow[i]);
                        if (rowsDataAsString == "")
                        {
                            myColumnNamesAndVals[(i * 2)]     = myColumnNamesAndVals[((i - 1) * 2)];
                            myColumnNamesAndVals[(i * 2) + 1] = myColumnNamesAndVals[((i - 1) * 2) + 1];
                            skip = true;


                            doNulls = true;
                            nullDateOrCurrencyColumnNames.Add(subtractorDataSet.Tables[0].Columns[i].ColumnName);
                        }
                        break;

                    case "decimal":
                        rowsDataAsString = Convert.ToString(subtractorRow[i]);
                        if (rowsDataAsString == "")
                        {
                            myColumnNamesAndVals[(i * 2)]     = myColumnNamesAndVals[((i - 1) * 2)];
                            myColumnNamesAndVals[(i * 2) + 1] = myColumnNamesAndVals[((i - 1) * 2) + 1];
                            skip = true;


                            doNulls = true;
                            nullDateOrCurrencyColumnNames.Add(subtractorDataSet.Tables[0].Columns[i].ColumnName);
                        }
                        break;

                    case "double":
                        rowsDataAsString = Convert.ToString(subtractorRow[i]);
                        break;

                    case "string":
                        if (subtractorRow[i].GetType().Name == "DBNull")
                        {
                            //   "JobNotes" = "Customer"
                            //   null      =  "588"
                            myColumnNamesAndVals[(i * 2)]     = myColumnNamesAndVals[((i - 1) * 2)];
                            myColumnNamesAndVals[(i * 2) + 1] = myColumnNamesAndVals[((i - 1) * 2) + 1];
                            skip = true;


                            doNulls = true;
                            nullDateOrCurrencyColumnNames.Add(subtractorDataSet.Tables[0].Columns[i].ColumnName);
                        }
                        else
                        {
                            rowsDataAsString = "'" + ((string)subtractorRow[i]).EscapeSingleQuotes() + "'";
                        }
                        break;

                    //case "yesno":
                    //        rowsDataAsString = Convert.ToString(subtractorRow[i]);
                    //        break;
                    case "boolean":
                        if (subtractorRow[i].GetType().Name == "DBNull")
                        {
                            break;
                        }
                        rowsDataAsString = Convert.ToString(subtractorRow[i]);
                        break;

                    default:
                        throw new Exception("unexpected datatype.  Add this type to the case switch in the Minus extention.");
                    }
                    #endregion


                    if (!skip)
                    {
                        myColumnNamesAndVals[(i * 2) + 1] = rowsDataAsString;
                    }
                }



                string svl = string.Format(formatterText,         //  eg  "{0} = {1}, {2} = {3}"
                                           myColumnNamesAndVals); //  eg  { "Index", "1", "StringData", "'bla'" }


                DataRow[] HitRows = MainDataSet.Tables[0].Select(svl);  // Look in MainDataset to see if the subtractor's record exists there
                // and if it does, delete it from the MainDataset


                #region delete all rows that were found in the subtractor row aswell as in the MainDataSet
                foreach (DataRow rw in HitRows)                                     // Check each row of the hits...
                {
                    // I could check for nulls here manually, but that might be a sloppy method
                    if (doNulls)
                    {
                        foreach (string nullDate in nullDateOrCurrencyColumnNames) // Scan through all the null columns and...
                        {
                            if (rw[nullDate].GetType().Name == "DBNull")           // if they're actually DBNull... then... delete them from hits?
                            {
                                rw.Delete();                                       // this doesn't work because it deletes it at the first Null occurance, instead of 100% null match
                                break;
                            }
                        }
                    }
                    else
                    {
                        rw.Delete();
                    }
                }
                #endregion
                // reset the array incase we messed with it in our "optimized" way...
                myColumnNamesAndVals = setColumnNamesForDataArray(myColumnNamesAndVals, subtractorDataSet.Tables[0].Columns); // OPTIMIZE bury this behind a bool check or get rid of all these damn bool checks
            }
            MainDataSet.AcceptChanges();


            return(MainDataSet);
        }