You can use any DB Server for creating the Feedback Table. To help with MySQL database:
- Run the
ddl.sql
- Run the
dml.sql
NOTE: For other databases, please consult the respective help.
-- Create Database Session Analytics | |
CREATE DATABASE sessionAnalytics; | |
-- Create Table Feedback. | |
CREATE TABLE `feedback` ( | |
`sessionId` int(11) DEFAULT NULL, | |
`delegateId` int(11) DEFAULT NULL, | |
`isSpeaker` char(1) DEFAULT NULL, | |
`rating` int(11) DEFAULT NULL, | |
`createdOn` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
-- Insert a few records in the feedback table | |
INSERT INTO `feedback` VALUES (1,1,'Y',5,'2015-10-11 09:01:13'),(1,2,'Y',4,'2015-10-11 09:01:13'),(1,3,'Y',3,'2015-10-11 09:01:13'),(1,4,'N',3,'2015-10-11 09:01:13'),(1,5,'N',2,'2015-10-11 09:01:13'),(1,6,'N',1,'2015-10-11 09:01:13'),(1,7,'N',3,'2015-10-11 09:31:53'); |
using System; | |
using System.Collections; | |
using System.Collections.Generic; | |
static class IEnumerableExtensions { | |
public static void ForEach<T>(this IList<T> list, Action<T> action) { | |
if (list == null) | |
throw new ArgumentNullException("Require non-null list!"); | |
if (action == null) | |
throw new ArgumentNullException("Require non-null action!"); | |
foreach (T item in list) { | |
action(item); | |
} | |
} | |
} | |
public class Runner { | |
public static void Main(string[] args) { | |
string connectionString = "DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=sessionAnalytics;UID=???;PWD=???;OPTION=3;"; | |
Sql.ExecuteQuery(connectionString, "SELECT * from feedback").ForEach(Console.WriteLine); | |
} | |
} |
using System; | |
public class Feedback { | |
private long sessionId; | |
private long delegateId; | |
private char isSpeaker; | |
private int rating; | |
private DateTime createdOn; | |
public Feedback(long sessionId, long delegateId, char isSpeaker, int rating, DateTime createdOn) { | |
this.sessionId = sessionId; | |
this.delegateId = delegateId; | |
this.isSpeaker = isSpeaker; | |
this.rating = rating; | |
this.createdOn = createdOn; | |
} | |
public override string ToString() { | |
return $"Feedback(sessionId={sessionId}, delegateId={delegateId}, isSpeaker={isSpeaker}, rating={rating}, createdOn={createdOn})"; | |
} | |
} |
using System; | |
using System.Collections; | |
using System.Collections.Generic; | |
using System.Data; | |
using System.Data.Odbc; | |
class Sql { | |
public static IList<Feedback> ExecuteQuery(string connectionString, string sql) { | |
using (OdbcConnection connection = new OdbcConnection(connectionString)) { | |
OdbcCommand command = new OdbcCommand(sql, connection); | |
connection.Open(); | |
// Execute the DataReader and access the data. | |
using (OdbcDataReader reader = command.ExecuteReader()) { | |
IList<Feedback> feedbacks = new List<Feedback>(); | |
while (reader.Read()) { | |
var feedback = new Feedback(reader.GetInt64(0), reader.GetInt64(1), reader.GetChar(2), reader.GetInt16(3), reader.GetDateTime(4)); | |
feedbacks.Add(feedback); | |
} | |
return feedbacks; | |
} | |
} | |
} | |
} |