![](/img/trans.png)
[英]In SQL Server 2008, what default date should I use if I don't want it to be null?
[英]What datatype should I use when adding a column that will contain a null to a Datatable with SQL Server?
我有一个正在发送此数据的客户端:
{"answers":[
{"response":true},
{"response":true},
{"response":true},
{"response":false},
{"response":false}]}
我有这样的课程:
public class AnswerRow
{
public bool? Correct { get; set; }
public bool Response { get; set; }
}
public class AnswerRowList
{
public IList<AnswerRow> Answers { get; set; }
}
在我的WebAPI中,我收到如下数据:
[HttpPut]
[Route("MarkQuestion/{testQuestionId}/{questionUId:Guid}")]
[ValidateModel]
public async Task<IHttpActionResult> MarkQuestion(string testQuestionId, Guid questionUId, [FromBody]AnswerRowList answer)
{
var createdBy = User.Identity.GetUserId();
DataTable answers = new DataTable();
answers.Columns.Add("Response", typeof(????));
foreach (AnswerRow a in answer.Answers)
{
answers.Rows.Add(a.Response);
}
我认为我所有的代码都可以,除了我不知道如何向将接受布尔值的DataTable添加一列。 我尝试了BIT和Bit and bit,但是在VS2013中针对这些类型显示了语法错误。
我会尝试使用变量TinyInt而不是布尔值。 这是一个1字节的数据类型,您可以根据需要输入值1或0,分别代表true和false。 可能还有其他方法,但这就是我在表中使用的方法。
编辑对不起,但是我不知道我上次如何使用TinyInt。 我建议您将类型更改为INT,并且按照惯例,仅使用值1或0。因此,您可以在此处获取代码:
answers.Columns.Add("Response", typeof(????));
foreach (AnswerRow a in answer.Answers)
{
answers.Rows.Add(a.Response);
}
并使其:
answers.Columns.Add("Response", typeof(int));
foreach(AnswerRow a in answer.Answers)
{
if(a.Response) // Here I'm trying to check if a.Response is true
answers.Rows.Add(1);
else
answers.Rows.Add(0);
}
目前,我没有机会对此进行测试,因此,请告诉我是否至少可以为您指明正确的方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.