示例#1
0
文件: SQLite.cs 项目: seeseekey/CSCL
		//Edits
		/// <summary>
		/// Fügt Daten zur einer Tabelle hinzu
		/// </summary>
		/// <param name="addData"></param>
		public override void InsertData(DataTable insertData)
		{
			string sqlCommand=String.Format("INSERT INTO \"{0}\" (", insertData.TableName);

			//Columns
			for(int i=0; i<insertData.Columns.Count; i++)
			{
				if(i==insertData.Columns.Count-1) sqlCommand+=" "+insertData.Columns[i];
				else sqlCommand+=" "+insertData.Columns[i]+",";
			}
			sqlCommand+=") VALUES";
			string tmpSqlCommand=sqlCommand;

			sqlCommand=tmpSqlCommand;
			sqlCommand+=" (";

			for(int j=0; j<insertData.Columns.Count; j++)
			{
				if(j==insertData.Columns.Count-1) sqlCommand+=String.Format("?");
				else sqlCommand+=String.Format("?,");
			}

			sqlCommand+=")";

			SQLiteVdbe tmpVdbe=new SQLiteVdbe(InstSQLiteDatabase, sqlCommand);

			//Rows (Daten)
			for(int i=0; i<insertData.Rows.Count; i++)
			{
				tmpVdbe.Reset();

				for(int j=0; j<insertData.Columns.Count; j++)
				{
					tmpVdbe.BindObjectToType(j+1, insertData.Rows[i].ItemArray[j]);
				}

				tmpVdbe.ExecuteStep();
			}

			tmpVdbe.Close();
		}
示例#2
0
文件: SQLite.cs 项目: seeseekey/CSCL
		/// <summary>
		/// Updatet bestimmte Daten
		/// </summary>
		/// <param name="insertData"></param>
		public override void UpdateData(DataTable updateData, string PrimaryKey)
		{
			string sqlCommand=String.Format("UPDATE \"{0}\" SET ", updateData.TableName);
			string tmpSqlCommand=sqlCommand;

			//Rows (Daten)
			for(int i=0; i<updateData.Rows.Count; i++)
			{
				sqlCommand=tmpSqlCommand;

				for(int j=0; j<updateData.Columns.Count; j++)
				{
					if(updateData.Columns[j].Caption!=PrimaryKey)
					{
						//Parameters zusammenbauen
						if(j==updateData.Columns.Count-1) sqlCommand+=String.Format("{0}=?", updateData.Columns[j].Caption);
						else sqlCommand+=String.Format("{0}=?,", updateData.Columns[j].Caption);
					}
				}

				sqlCommand+=" WHERE "+PrimaryKey+" = "+updateData.Rows[i][PrimaryKey].ToString()+";";

				SQLiteVdbe tmpVdbe=new SQLiteVdbe(InstSQLiteDatabase, sqlCommand);

				tmpVdbe.Reset();

				int zTmp=1;

				for(int j=0; j<updateData.Columns.Count; j++)
				{
					if(updateData.Columns[j].Caption!=PrimaryKey)
					{
						//tmpVdbe.BindObjectToType(j+1, updateData.Rows[i].ItemArray[j]);
						tmpVdbe.BindObjectToType(zTmp, updateData.Rows[i].ItemArray[j]);
						zTmp++;
					}
				}

				tmpVdbe.ExecuteStep();

				tmpVdbe.Close();
			}
		}